作者:每天好心情LJH_276 | 来源:互联网 | 2023-09-11 13:54
C#新手,有个问题求教:当我使用MessageBox.Show(test,Error,MessageBoxButtons.AbortRetryIgnore,MessageBoxI
C#新手,有个问题求教:
当我使用
MessageBox.Show("test", "Error", MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Error);
弹出的消息框会获取窗口焦点,这是按下A 会触发 Abort,就是说可能会导致误操作。
所以如果我不想让其获取窗口焦点的话,应该怎么做呢?求指教
19 个解决方案
你可以自己创建个dialog.不要Accesskey。
用ShowDialog显示出来。
楼上,要用非模态吧,ShowDialog还是可能获取焦点!
使用 MessageBox API,第一个参数 Handle 传递 0。
试试
MessageBox.Show("内容", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1,
MessageBoxOptions.DefaultDesktopOnly)
试试:
[DllImport("User32.dll")]
public static extern int MessageBox(int h, string m, string c, int type);
[DllImport("kernel32")]
static extern void GetSystemInfo(ref SYSTEM_INFO pSI);
private void button1_Click(object sender, EventArgs e)
{
MessageBox(0, "API", "API TEST", 0);
}
http://msdn.microsoft.com/zh-cn/library/system.windows.forms.messagebox.show(VS.80).aspx
只能自己做窗体了
API:
ShowWindow (Handle,
SW_SHOWNOACTIVATE);
SetWindowPos (Handle, HWND_TOPMOST,Left,Top,Width,Height,
SWP_NOACTIVATE)