0

在 C# 中,我开发了一个应用程序,但我遇到了一些错误,我的项目中有两种形式,form1 和 form2。但是当我想从 Form2 调用任何对象属性时,它不会被显示和调用。我怎样才能做到这一点?我试着做,但没有发生

Form2 上有一个文本框,我想使用 Form1 中的 ıts 属性

下面的代码是我想要的...

Messagebox.Show(Form2.textBox1.Text.ToString());
4

2 回答 2

1

首先,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);
}
于 2013-06-26T17:48:57.217 回答
0

试试表格 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;
     }
于 2013-06-26T17:50:26.743 回答