我有個問題。我需要在加載窗口時隱藏我的窗口。但 private void Form1_Load(object sender, EventArgs e) { this.Visible = false; }不管用。財產Visible仍然是真實的。我想念什么嗎?
3 回答

揚帆大魚
TA貢獻1799條經驗 獲得超9個贊
是的,在Windows窗體中,Visible屬性很重要,這實際上是創建句柄并導致OnLoad()運行的原因。換句話說,直到它可見,該窗口才存在。并且它將忽略撤消此操作的嘗試。
如果您使用NotifyIcon,通常仍然想創建該句柄但不使窗口可見是很常見的。您可以通過重寫SetVisibleCore實現此目的:
protected override void SetVisibleCore(bool value) {
if (!this.IsHandleCreated) {
value = false;
CreateHandle();
}
base.SetVisibleCore(value);
}
注意,直到窗口實際可見之前,OnLoad仍然不會運行,因此如有必要,將代碼移入構造函數。只需在NotifyIcon的上下文菜單事件處理程序中調用Show()即可使窗口可見。
- 3 回答
- 0 關注
- 709 瀏覽
添加回答
舉報
0/150
提交
取消