我有2个表格 在表单1我有一个按钮,当我点击按钮表格2将显示,我的数据显示在表格2到目前为止它是好的 但我希望当表单2中的一个打开时,如果用户单击表单1中的按钮,则关闭此表单2并打开一个新表单!不要打开其他表格2 我希望你理解我的问题:对不起英语不好
我尝试过表单实例函数,但它不能正常运行它只是保存这个表单2并且不允许打开新表单! 使用这些代码:
public static Form2 Instance
{
get
{
if (_form2 == null)
{
_form2 = new Form2();
}
return _form2;
}
}
这是按钮代码:
private void btnSave_Click(object sender, EventArgs e)
{
if (RadioMale.Checked == true)
{
jensiyat = "مرد";
}
else { jensiyat = "زن"; }
if (RadioMarried.Checked == true)
tahol = "متاهل";
else tahol = "مجرد";
Class1.txt +=
"________________________\n\n" + "مشخصات مربوط به خانم/آقای "
+ tbFamily.Text + "\n________________________" +
"\nنام و نام خانوادگی: " + tbName.Text + " " +
tbFamily.Text + "\n" + "ایمیل: " + tbEmail.Text + "\n" + "شماره ملی: " +
tbCodmeli.Text + "\n" + "سریال شناسنامه: " +
tbSerialShenasname.Text
+ "\nشهر محل زندگی: "+ shahr + " - " + TreeShahr.SelectedNode.Text
+ "\nآدرس: " + tbAddress.Text + "\n"
+ " تحصیلات : " + ComboTahsilat.SelectedItem
+ "\nجنسیت : " +jensiyat
+ "\nوضعیت تاهل: " + tahol
+ "\nتاریخ تولد: " + BirthTimePicker.Value.ToPeString()
+ "\n__________________________________________________";
Form frm2 = new Form2();
frm2.Show();
}
答案 0 :(得分:2)
您可以使用Application.OpenForms
。获取应用程序拥有的打开表单的集合。
List<Form> forms = new List<Form>();
// All opened myForm instances
foreach(Form f in Application.OpenForms){
if (f.Name == "Form2"){
f.Close();
break;
}
}
您可以显示
之类的表单Form2 ff = new Form2();
ff.Show();
答案 1 :(得分:0)
将Form2
的变量声明为btnSave_Click
方法范围之外的类变量。这样,当您再次单击该按钮时,您将能够再次访问它。
Form frm2 = new Form2();
private void btnSave_Click(object sender, EventArgs e)
{
if(frm.Visible) // check whether the form is already showing
{
frm.Close(); // if yes close it first
}
frm2 = new Form2(); // then make a new form and show it
frm2.Show();