我想删除消息框中的按钮,例如(是,YesNo,OK ...),但不是关闭按钮。除非删除参数,否则我发现无法做到这一点,但我不能这样做,因为我需要在我的消息框中添加选项参数。
答案 0 :(得分:6)
我认为您唯一的选择是创建一个看似消息框的自定义表单。
答案 1 :(得分:2)
我同意@NDJ,最干净,最直接的解决方案是根据表单构建自己的消息框。要修改实际的MessageBox,需要许多低级Windows API,例如example。 (该项目正在修改按钮上的文本。您需要其他API来隐藏它们;但MessageBox不会调整大小。)
*我不建议您使用API方法......我只是向您展示它将花费多少精力和代码!
答案 2 :(得分:1)
您指定的MessageBoxButtons.CLOSE
没有成员。就像NDJ所说的那样。
答案 3 :(得分:0)
所以,如果你的意思是删除关闭按钮。除非你制作新表格,否则你无法删除它。如果你想禁用它。复制以下链接。我正在多次使用它来禁用消息框中的关闭按钮。
internal const int SC_CLOSE = 0xF060; //close button's code in windows api
internal const int MF_GRAYED = 0x1; //disabled button status (enabled = false)
internal const int MF_ENABLED = 0x00000000; //enabled button status
internal const int MF_DISABLED = 0x00000002; //disabled button status
[DllImport("user32.dll")] //Importing user32.dll for calling required function
private static extern IntPtr GetSystemMenu(IntPtr HWNDValue, bool Revert);
/// HWND: An IntPtr typed handler of the related form
/// It is used from the Win API "user32.dll"
[DllImport("user32.dll")] //Importing user32.dll for calling required function again
private static extern int EnableMenuItem(IntPtr tMenu, int targetItem, int targetStatus);