我发现了一个奇怪的ToolStripButton
双击问题。这些步骤将重现该问题:
- 创建一个 Windows 窗体应用程序。
ToolStrip
在主窗体上添加一个。- 在.
ToolStripButton
_ToolStrip
OpenFileDialog
在主窗体上添加一个。- 双击属性工具箱上的
ToolStripButton
'Click
事件。 在方法中添加这个
toolStripButton1_Click
:openFileDialog1.ShowDialog();
- 开始调试。
- 快速双击
ToolStripButton
.
问题来了。首先,弹出一个打开文件对话框,我关闭它,然后弹出另一个对话框。这不应该发生。我再次关闭它,然后主窗体可能有一些重绘问题。最后,我关闭了主窗体,但程序仍在运行。
请自己尝试一下,如果所有这些都发生了,请告诉我。
为什么会发生这些?我应该怎么做才能解决它?
您可以使用它来重现问题:
using System;
using System.ComponentModel;
using System.Windows.Forms;
namespace WinForm
{
class MyForm : Form
{
private IContainer components = null;
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
private void InitializeComponent()
{
openFileDialog1 = new OpenFileDialog();
toolStrip1 = new ToolStrip();
toolStripButton1 = new ToolStripButton();
toolStrip1.SuspendLayout();
this.SuspendLayout();
toolStrip1.Items.AddRange(new ToolStripItem[] { toolStripButton1 });
toolStripButton1.Text = "toolStripButton1";
toolStripButton1.Click += new EventHandler(toolStripButton1_Click);
this.Controls.Add(toolStrip1);
toolStrip1.ResumeLayout(false);
toolStrip1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
private OpenFileDialog openFileDialog1;
private ToolStrip toolStrip1;
private ToolStripButton toolStripButton1;
public MyForm()
{
InitializeComponent();
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
openFileDialog1.ShowDialog();
}
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MyForm());
}
}
}