c#调用user32.dll的messagebox方法:
// 提示框的参数
private const int MB_OK = 0;
private const int MB_DEFBUTTON2 = 256;
private const int MB_TASKMODAL = 8192;
private const int MB_TOPMOST = 262144;
[DllImport("user32.dll", CharSet = CharSet.Unicode)]
public static extern int MessageBox(IntPtr hWnd, String text, String caption, uint type);
MessageBox(IntPtr.Zero, "text!", "系统提示", MB_OK | MB_DEFBUTTON2 | MB_TASKMODAL | MB_TOPMOST);
起初我只在网上找到方法名和参数类型,并没有找到参数对应的int值.
我的做法是直接在百度词条搜索messagebox关键词
找到对应的16进制数字,然后在线转换成10进制就ok了 !
对了 ,这个功能写的是把弹窗置顶在最上面 ,还不强制将焦点聚焦到对话框上。
MessageBox.Show("text", "系统提示", MessageBoxButtons.OK, MessageBoxDefaultButton.Button1, MessageBoxOptions.ServiceNotification, true);
这种方法,会强制聚焦在这个对话框上面,很不友好,所以弃用了。
参考链接:Messagebox的Owner,显示位置,自动关闭的研究。_c# messagebox owner-CSDN博客