我想知道有沒有辦法在我的自定義對話框的左上角有圖標,而控制框,最小化框和最大化框被禁用?當點擊圖標(關於,關閉,移動等)時,我不需要任何功能。我只是想要更好看。沒有控制盒的Windows窗體對話框圖標
回答
沒有控制箱=>無圖標...
當控制盒被禁用,形式windowstyle WS_SYSMENU標誌(不知在遠地)下降,因此它成爲不可能的Windows顯示一個圖標。其實我還沒有找到爲什麼(&如何)的右上角的圖標繼續存在W/O WS_SYSMENU最終解釋權......卻發現多了一個很好的解決方案適合您的需要)
private const int GWL_STYLE = -16;
private const int WS_CLIPSIBLINGS = 1 << 26;
[DllImport("user32.dll", CharSet = CharSet.Auto, EntryPoint = "SetWindowLong")]
public static extern IntPtr SetWindowLongPtr32(HandleRef hWnd, int nIndex, HandleRef dwNewLong);
[DllImport("user32.dll", CharSet = CharSet.Auto, EntryPoint = "GetWindowLong")]
public static extern IntPtr GetWindowLong32(HandleRef hWnd, int nIndex);
protected override void OnLoad(EventArgs e) {
int style = (int)((long)GetWindowLong32(new HandleRef(this, this.Handle), GWL_STYLE));
SetWindowLongPtr32(new HandleRef(this, this.Handle), GWL_STYLE, new HandleRef(null, (IntPtr)(style & ~WS_CLIPSIBLINGS)));
base.OnLoad(e);
}
我無法使用您提供的這段代碼。因爲所有這些都是用戶期望的正常情況,所以我只用關閉按鈕來使用控制盒。 – Vajda
似乎不起作用。可以工作的是禁用或刪除系統菜單中的SC_CLOSE項目。禁用的關閉框仍然可見,但不可點擊。見http://www.codeguru.com/csharp/csharp/cs_misc/userinterface/article.php/c9327/Manipulating-the-System-Menu-Using-C.htm – dlchambers
您可以將ControlBox屬性設置爲false。 Control Box,最大化,最小化按鈕不會顯示在對話框中。
Form1.ControlBox = false;
否則 你可以這樣設置,如果你不願意禁用整個控制箱。您可以將ShowIcon屬性設置爲true。
Form1.MaximizeBox = false;
Form1.MinimizeBox = false;
Form1.ShowIcon=true;
- 1. C#Windows窗體:最上面的對話框沒有關注
- 2. Windows窗體中的條件對話框
- 3. Windows窗體中的提示對話框
- 4. Windows窗體圖形沒有繪製
- 5. Windows窗體:ShowDialog - 對話框不顯示
- 6. Windows窗體運行帶有對話框(窗體)的新線程並且主線程擁有對話框
- 7. 沒有警告對話框的圖標
- 8. 定製的MessageBox(對話框)Windows窗體C#
- 9. 控制檯的Windows窗體
- 10. 使用Windows窗體實現模型/對話框窗體?
- 11. 如何在C#窗體窗體對話框中顯示標準錯誤圖標?
- 12. 帶有大字體的Windows對話框
- 13. C#Windows窗體控制圖像?
- 14. 沒有找到Windows窗體控件庫
- 15. Windows窗體,窗體的圖標問題
- 16. MFC對話框和窗體
- 17. 有沒有一種標準的方法來從Windows窗體中的自定義對話框返回值?
- 18. 有沒有Windows窗體的任何控制插件,使更好的Windows窗體設計?
- 19. 保存沒有對話框窗口
- 20. 在Windows窗體中實現阻塞模式視圖/對話框 - 有可能嗎?
- 21. 沒有主窗體的Winforms應用程序 - 對話框頂部沒有顯示
- 22. WindowsFormsHost中的Windows窗體圖表沒有收到鼠標滾輪?
- 23. AngularJS模態對話框窗體對象在控制器中是未定義的
- 24. C#Windows窗體:用於製表控制
- 25. 窗體窗體 - 在窗體前顯示對話框
- 26. 對話框視圖沒有找到對話框的記錄
- 27. 圖片目錄和對話框控制
- 28. 控制fb.login對話框圖像
- 29. 關閉對話框和啓動對話框的窗體
- 30. AddMessageFilter沒有Windows窗體?
沒有控制盒子 - >無圖標 – Mikant
你對此有多確定?沒有任何選擇嗎? – Vajda
@Mikant,你可以發表一個答案,以便我可以選擇你的答案是正確的。 – Vajda