C#使用Form2中文本框的属性
在C#中,我开发了一个应用程序,但我得到了一些错误 在我的项目中有两个表格,表格1和表格2。 但是当ı想从Form2调用任何对象属性时,不会显示并调用ıt。你怎么能做这些?我试过了,但没有成功 表单2上有一个文本框,并且希望使用表单1中的属性 下面的代码是我想要的C#使用Form2中文本框的属性,c#,object,components,C#,Object,Components,在C#中,我开发了一个应用程序,但我得到了一些错误 在我的项目中有两个表格,表格1和表格2。 但是当ı想从Form2调用任何对象属性时,不会显示并调用ıt。你怎么能做这些?我试过了,但没有成功 表单2上有一个文本框,并且希望使用表单1中的属性 下面的代码是我想要的 Messagebox.Show(Form2.textBox1.Text.ToString()); 首先,Form1真的不应该了解Form2的内部控制。文本框不应该公开。而是在Form2上创建一个属性,以公开所需的信息: public
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);
}
试一试
表格一
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;
}
你有在Form1上使用的Form2实例吗?在窗体的构造函数中将textbox内容作为参数传递。这甚至不应该编译,因为textbox不是静态的(至少我希望不是;它不应该是静态的)。它也不应该公开;您应该添加一个只公开文本的属性。@kostasch
Form2
可能是子表单,而不是父表单,因此他是创建实例的人;他只需要抓住它。我到底该怎么办呢?