이상한 ToolStripButton
두 번 클릭 문제를 발견했습니다. 이러한 단계를 통해 문제가 재현됩니다.Strange ToolStripButton OpenFileDialog 비헤이비어를 클릭하여 엽니 다.
- Windows Form 응용 프로그램을 만듭니다.
- 기본 양식에
ToolStrip
을 추가하십시오. ToolStrip
에ToolStripButton
을 추가하십시오.- 주 양식에
OpenFileDialog
을 추가하십시오. - 속성 도구 상자에서
ToolStripButton
의Click
이벤트를 두 번 클릭하십시오. - 는
- 시작 디버그.
ToolStripButton
을 빨리 두 번 클릭하십시오.
toolStripButton1_Click
방법이 추가 :
openFileDialog1.ShowDialog();
여기에 문제가 있습니다. 먼저 열려있는 파일 대화 상자가 나타나면 닫고 다른 대화 상자가 나타납니다. 이것은 일어나서는 안됩니다. 다시 닫으면 기본 양식에 다시 그리기 문제가있을 수 있습니다. 마지막으로, 메인 폼을 닫지 만 프로그램은 여전히 실행 중입니다.
직접 시도하고 모든 문제가 발생하면 알려 주시기 바랍니다.
왜 그런가 발생합니까? 문제를 해결하려면 어떻게해야합니까? 그 일이 왜
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());
}
}
}
거기에 왜 당신은 * 더블 클릭 *을에 * 한 번의 클릭 *를 응답합니다? – Coder
우연히 두 번 클릭하면이 문제가 발견되었습니다.내 말은, 누군가가 버튼을 두 번 클릭하면, 문제가 발생해서는 안된다는 거지, 그렇지? – EFanZh
예,하지만 OP가 닫히면 앱이 여전히 실행되는 이유는 설명하지 않습니다. (발생했지만 시도했습니다) – Marco