Tag: messagebox

Dialog MessageBox有时隐藏在主窗体后面

我们的一些非技术用户遇到问题,我们的应用程序中的对话框有时可能会显示在主窗体后面,并且应用程序不接受任何输入,直到消息框(他们看不到)被解除。 应用程序是用C#编写的,消息框是标准的,例如代码可以像MessageBox.Show(消息,标题)一样简单,消息框可以由主UI线程创建(即不是某些后台线程)。 应用程序不必全屏运行,但90%的用户确实全屏运行。 大多数时候((可能> 99%)消息框显示正确,我从来没有设法看到它出错,但我看到一台机器出错了。 我注意到的一件事是,如果你有一个显示对话框的应用程序,那么当你查看你的任务管理器时,你只能在应用程序列表中看到一个条目。 每当隐藏消息框时,您将看到两个条目,一个用于主应用程序,另一个用于此消息框。 一旦你知道发生了什么事情就很容易解决问题,但是我们的一些非技术用户对它感到困惑并最终关闭了他们的计算机。 (而那些使用远程桌面的人在解决问题时更加困惑)。 我不认为它与操作系统有关,因为我已经看到它发生在Vista中并且被告知它也发生在Windows 2003服务器上的终端会话中。 有什么事情知道为什么会这样,更重要的是,如果可以做任何事情来避免它吗?

在c#中使用WINAPI单击消息框的“确定”按钮

我试图使用winapi点击C#窗体的消息框上的“确定”按钮。 以下是我正在处理的代码。 private const int WM_CLOSE = 16; private const int BN_CLICKED = 245; [DllImport(“user32.dll”, CharSet=CharSet.Auto)] public static extern int SendMessage(int hWnd, int msg, int wParam, IntPtr lParam); [DllImport(“user32.dll”, SetLastError = true)] public static extern IntPtr FindWindowEx(IntPtr parentHandle, IntPtr childAfter, string className, string windowTitle); //this works hwnd = FindWindow(null, “Message”); if(hwnd!=0) SendMessage(hwnd, WM_CLOSE, 0, IntPtr.Zero); […]

在C#中自动关闭消息框

我目前正在C#中开发一个应用程序,我在其中显示一个MessageBox。 如何在几秒钟后自动关闭消息框?

消息框和unit testing

我正在尝试找到从我的逻辑中解开消息框的最佳方法,以便我可以正确地对其进行unit testing。 现在我想知道如果我只是制作了一个单独的帮助类(C#)就足够了,我可以稍后为我的消息框存根。 例如: static class messageBoxHelper { public static void msgBoxAlg(string message, string title, MessageBoxButtons buttons, MessageBoxIcon icons, bool show) { if (show) { MessageBox.Show(message, title, buttons, icons); } } 然后,每当我需要使用消息框时,我只使用messageboxHelper / msgBoxAlg(…)而不是messagebox.show(…)。 使用bool show我可以在测试期间启用或禁用它。 我只是想知道这是否是“正确的方法”。 我的意思是,有更简单或更好的方法来做到这一点吗? 我不能只丢弃消息框,他们将“重要”信息传递给用户(“你想关闭这个窗口吗?”是/否等)。 它也可能只是我没有使用适当的软件工程,我应该将我的消息框与我的bussinesslogic分开更多?

调用和BeginInvoking MessageBox有什么区别?

在表格中,比较 BeginInvoke (new Action (() => { MessageBox.Show ()); })); 同 Invoke (new Action (() => { MessageBox.Show ()); })); 有什么区别,什么时候应该使用一个而不是另一个? 如何通过MessageBox的消息泵来影响行为? 我做了一些测试,发现两种方法都阻止了UI。 唯一的区别是Invoke实际上是立即调用的,而BeginInvoke需要(非常短的)时间直到代码运行。 这是可以预料的。

当应用程序最小化到托盘时,C#MessageBox到前面

我有一些弹出消息框的代码: MessageBox.Show(this, “You have not inputted a username or password. Would you like to configure your settings now?”, “Settings Needed”, MessageBoxButtons.YesNo, MessageBoxIcon.Question); 我的问题是当弹出我的应用程序通常最小化到托盘。 因此,消息框不会出现在前面,也不会出现在开始栏中。 看到它的唯一方法是通过alt-tabbing。 以下是将我的应用程序(父级)最小化到托盘的代码: if (FormWindowState.Minimized == WindowState) { Hide(); }

如何在WinForms中显示包含详细信息的消息框?

刚才我注意到,当属性设置为无效值时,Visual Studio会显示一个带有详细信息的消息框。 例如: 是否可以在WinForms中生成这种类型的消息框? 我试过以下代码: MessageBox.Show(“Error in Division Fill.\n” + ex.Message, “Information”, MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxOptions.RightAlign); 但是这产生了以下错误: 错误24’System.Windows.Forms.MessageBox.Show(string,string,System.Windows.Forms.MessageBoxButtons,System.Windows.Forms.MessageBoxIcon,System.Windows.Forms.MessageBoxDefaultButton)’的最佳重载方法匹配无效的参数 G:\ Jagadeeswaran \ 11月17日\ MCS-SPS学校\ MCS-SPS学校\证书\ Transfer.cs 164 21 MCS-SPS学校 如何修复此错误并获取显示其他详细信息的消息框?

MessageBox.Show-字体改变?

我正在使用MessageBox类向用户显示错误,虽然这可能不是正确的行为,但它非常方便。 这是一个触摸屏应用程序,所以我需要’ok’按钮比它大得多(诅咒我非常大的手指!)。 我想如果我在对话框中增加字体大小,我应该没问题。 有没有办法做到这一点? 或者真的,有没有办法增加对话框的大小? 谢谢

从不使用标签控件的对话框中获取文本?

这是我之前的问题的延续如何压缩Inproc COM服务器显示的对话框 。 背景: 回顾一下我的情况:我有一个从第三方用Delphi编写的Inproc COM服务器。 如果它捕获特定类型的错误,我调用的函数之一将显示错误消息对话框。 问题是我正在尝试批量处理数据,而我正在使用的数据源导致错误对话框弹出很多(感谢我之前的问题的答案,它现在自动关闭,我能够运行它到完成后,它会显示对话框并要求有人按OK 9923次)。 进程将阻塞,直到消息框关闭。 题: 我想更好地记录错误对话框所说的内容。 但是,任何获取对话框正文的尝试都失败了。 //Snip private void StartWindowListener() { //Queue the watcher on the message pump if we are not watching. if (_watcherRunning == false) { _watcherRunning = true; _dummyForm.BeginInvoke(new Action(() => { _watcherRunning = false; //If we are not inside the com object don’t enumerate. […]

如何更改MessageBox位置?

我需要更改消息框位置。 我不希望它位于页面的中心。 MessageBox.Show(“Hello”);