C# 从表格2开始关闭表格1上的事件
我有一个表单1设计,上面有一个关闭按钮,当按下关闭按钮时,你会在另一个表单(表单2)上得到一个文本框和一个ok按钮,当你在文本框中输入密码1234并按下ok按钮时,我希望它关闭表单2,然后关闭,e.cancel=false;表1,因为e.cancel=true;在Form1\u FormClosing方法中 表格一 表格二 总之,我想要像这样的东西C# 从表格2开始关闭表格1上的事件,c#,winforms,C#,Winforms,我有一个表单1设计,上面有一个关闭按钮,当按下关闭按钮时,你会在另一个表单(表单2)上得到一个文本框和一个ok按钮,当你在文本框中输入密码1234并按下ok按钮时,我希望它关闭表单2,然后关闭,e.cancel=false;表1,因为e.cancel=true;在Form1\u FormClosing方法中 表格一 表格二 总之,我想要像这样的东西 if (textBox1.Text == "1234") { Close(); e.Cancel=false;
if (textBox1.Text == "1234")
{
Close();
e.Cancel=false;
Form1.Close();
}
如果这很容易做到,请不要恨我,但我对C#编程真的很陌生。试试这样
在form1上
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
Form2 frm = new Form2();
if (frm.ShowDialog() == DialogResult.Cancel)
{
e.Cancel = true;
}
}
在form2上
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "12345")
{
this.DialogResult = DialogResult.OK;
this.Close();
}
else
{
this.DialogResult = DialogResult.Cancel;
this.Close();
}
}
像这样试试
在form1上
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
Form2 frm = new Form2();
if (frm.ShowDialog() == DialogResult.Cancel)
{
e.Cancel = true;
}
}
在form2上
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "12345")
{
this.DialogResult = DialogResult.OK;
this.Close();
}
else
{
this.DialogResult = DialogResult.Cancel;
this.Close();
}
}
表格1:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnClose_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2(this);
f2.ShowDialog();
}
}
}
表格2:
public partial class Form2 : Form
{
Form1 frm;
public Form2(Form1 frm)
{
InitializeComponent();
this.frm = frm;
}
private void Form2_Load(object sender, EventArgs e)
{
}
private void btnOk_Click(object sender, EventArgs e)
{
if (textBox1.Text == "12345")
{
this.DialogResult = DialogResult.OK;
this.Close();
frm.FormClosing += new System.Windows.Forms.FormClosingEventHandler(Form1_FormClosingFalse);
frm.Close();
}
else
{
this.DialogResult = DialogResult.Cancel;
this.Close();
frm.FormClosing += new System.Windows.Forms.FormClosingEventHandler(Form1_FormClosingTrue);
}
}
public void Form1_FormClosingTrue(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
}
public void Form1_FormClosingFalse(object sender, FormClosingEventArgs e)
{
e.Cancel = false ;
}
}
表格1:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnClose_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2(this);
f2.ShowDialog();
}
}
}
表格2:
public partial class Form2 : Form
{
Form1 frm;
public Form2(Form1 frm)
{
InitializeComponent();
this.frm = frm;
}
private void Form2_Load(object sender, EventArgs e)
{
}
private void btnOk_Click(object sender, EventArgs e)
{
if (textBox1.Text == "12345")
{
this.DialogResult = DialogResult.OK;
this.Close();
frm.FormClosing += new System.Windows.Forms.FormClosingEventHandler(Form1_FormClosingFalse);
frm.Close();
}
else
{
this.DialogResult = DialogResult.Cancel;
this.Close();
frm.FormClosing += new System.Windows.Forms.FormClosingEventHandler(Form1_FormClosingTrue);
}
}
public void Form1_FormClosingTrue(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
}
public void Form1_FormClosingFalse(object sender, FormClosingEventArgs e)
{
e.Cancel = false ;
}
}
什么是
Close()代码>?命令行关闭表单。为什么命令行,有什么具体原因吗?它会在条件满足后自动关闭我的表单2。我不希望用户在输入密码之前能够关闭表单。什么是Close()代码>?命令行关闭表单。为什么命令行,有任何具体原因吗?它会在条件满足后自动关闭我的表单2。我不希望用户在输入密码之前能够关闭表单。检查您输入的密码,我已给出“12345”是的,我输入了正确的密码,正如我所说的,Form2正在关闭,但Form1没有关闭,我想因为e.Cancel一定是假的,而u写的是真的,但是我尝试了使用true和false两个值,结果都不起作用。在form2上放置一个调试点,检查您的条件是否在if或else中?它在if语句中。您的form1
是否从任何其他表单调用?检查您输入的密码,我已给出“12345”是的,我输入了正确的密码,正如我所说的,Form2正在关闭,但Form1没有关闭,我认为,因为e.Cancel必须为false,u写为true,但我尝试了true和false两个值,结果都不起作用。在Form2上设置一个调试点,检查您的条件是否在if或else中?它在if语句中。您的Form1
是否从任何其他形式调用?