在我的第一个表单上,我有一个启动第二个表单的按钮。第二个表单启动一个RDP。一切正常,但是当我在表单1上收到一个messagebox-message时,我不能访问我的第二个表单,直到我关闭messagebox。如何将这两个表单分开运行?
发布于 2014-12-10 16:41:16
如果希望向用户显示非模态(非模态)消息,则应该创建一个表单并使用其 show 方法,而不是显示消息框。下面的简单方法创建并显示一个看起来像消息框的窗体:
public static Form ShowNonModalMessageBox(string title, string text)
{
Form form = new Form();
form.FormBorderStyle = FormBorderStyle.FixedDialog;
form.MinimizeBox = false;
form.MaximizeBox = false;
form.Size = new Size(200, 100);
form.StartPosition = FormStartPosition.CenterScreen;
form.Text = title;
form.SuspendLayout();
Label label = new Label();
label.Text = text;
label.Dock = DockStyle.Fill;
form.Controls.Add(label);
Button okButton = new Button();
okButton.Text = "OK";
okButton.Dock = DockStyle.Bottom;
okButton.Click += delegate(object sender, EventArgs e)
{
form.DialogResult = DialogResult.OK;
form.Close();
};
form.Controls.Add(okButton);
form.ResumeLayout();
form.Show();
return form;
}然后,您可以像这样使用此方法向用户显示非模态消息:
Form messageBox = ShowNonModalMessageBox("Title", "This is the message.");
messageBox.FormClosed += messageBox_FormClosed;
private void messageBox_FormClosed(object sender, FormClosedEventArgs e)
{
MessageBox.Show("Form closed with result: " + ((Form)sender).DialogResult.ToString());
}发布于 2014-12-10 16:00:54
您应该使用Show()方法而不是ShowDialog()来启动表单。
发布于 2014-12-10 16:02:38
也许您使用的是ShowDialog()而不是Show(),后者将您的窗体显示为模式对话框。
https://stackoverflow.com/questions/27395849
复制相似问题