在 C# 中,我开发了一个应用程序,但我遇到了一些错误,我的项目中有两种形式,form1 和 form2。但是当我想从 Form2 调用任何对象属性时,它不会被显示和调用。我怎样才能做到这一点?我试着做,但没有发生
Form2 上有一个文本框,我想使用 Form1 中的 ıts 属性
下面的代码是我想要的...
Messagebox.Show(Form2.textBox1.Text.ToString());
在 C# 中,我开发了一个应用程序,但我遇到了一些错误,我的项目中有两种形式,form1 和 form2。但是当我想从 Form2 调用任何对象属性时,它不会被显示和调用。我怎样才能做到这一点?我试着做,但没有发生
Form2 上有一个文本框,我想使用 Form1 中的 ıts 属性
下面的代码是我想要的...
Messagebox.Show(Form2.textBox1.Text.ToString());
首先,Form1
真的不应该知道任何关于内部控制的事情Form2
。文本框根本不应该公开。而是在其上创建一个属性,Form2
以公开您需要的信息:
public class Form2 : Form
{
private Textbox textbox1;
public string SomeText //TODO replace with meaningful name
{
get { return textbox1.Text; }
}
}
接下来,在某些时候,您可能正在创建表单的一个实例来显示它。您可以通过该实例访问该属性:
Form2 childForm = new Form2();
childForm.ShowDialog();
MessageBox.Show(childForm.SomeText);
在某些情况下,您可能还需要将实例存储Form2
为实例字段Form1
而不仅仅是局部变量:
private Form2 childForm = new Form2();
private void SomeMethod()
{
childForm.Show();
}
private void SomeOtherMethod()
{
MessageBox.Show(childForm.SomeText);
}
试试表格 1
public string _parameter;
public Form1()
{
InitializeComponent();
}
public void form2_show_click(object sender, EventArgs e)
{
form2 frm = new form2();
frm.ShowDialog();
_parameter = frm.parameter;
}
form2
public string parameter;
public void form1_show_click(object sender, EventArgs e)
{
parameter = textBox1.Text;
this.DialogResult = System.Windows.Forms.DialogResult.OK;
}