The*_*iot 4 .net c# krypton-toolkit winforms
我一直在处理奇怪的问题.我在一个项目中使用KryptonForm.我有一个表单(比如form1),我需要在这个表单的按钮上打开另一个表单.这是代码:
void btn_click(object sender, EventArgs e)
{
Visible = false;
ShowInTaskbar = false;
var f = new Form2();
f.ShowDialog();
Visible = true;
ShowInTaskbar = true;
}
Run Code Online (Sandbox Code Playgroud)
问题是,当Form2关闭时,它也会关闭Form1.我试过DialogResult = DialogResult.None从Form2设置,但没有用.请帮我.
我一直在使用这种技术,这件事从未发生过.
是的,这段代码很麻烦.用户关闭对话框时出错.然后Windows必须找到另一个窗口来关注焦点.您的应用中没有任何剩余,您的主窗口是不可见的.然后它选择另一个应用程序的窗口.例如,这将是一个很好的例子,这将是Visual Studio中的一个窗口.一个大的.你的主要形式现在消失了.
在对话框关闭之前,您需要确保主窗口再次可见.您可以通过订阅对话框的FormClosing事件处理程序来完成此操作.例如:
private void button1_Click(object sender, EventArgs e) {
using (var dlg = new Form2()) {
dlg.StartPosition = FormStartPosition.Manual;
dlg.Location = this.Location;
dlg.FormClosing += (s, ea) => this.Show(); // <=== Here
this.Hide();
if (dlg.ShowDialog() == DialogResult.OK) {
// etc...
}
}
}
Run Code Online (Sandbox Code Playgroud)