我想检索子表单值

时间:2011-09-27 12:29:20

标签: c# .net winforms user-controls splitcontainer

在c#应用程序中我有一个splitcontainer,在右侧面板中我有一个表单。我想在单击面板内表单外的按钮时检索表单文本框的值。怎么做?

3 个答案:

答案 0 :(得分:3)

可能是您在SplitContainer的右侧面板中有一个UserControl。

在那个userControl类中写一个公共方法来获取值。

public string GetValueOfTheTextBox()
{
    return textBox.Text;
}

将userControl添加到SplitContainer。

MyUserControl myUserControl = new MyUserControl();
//Add this to the splitContainer right panel.

从MyUserControl类的外部,您可以调用GetValueOfTheTextBox方法。

string text = myUserControl.GetValueOfTheTextBox();

答案 1 :(得分:2)

您需要参考其他表格。假设你有Form1和Form2。 Form2上有所有文本框。

Form1.cs - Button1_Click():

// Create an instance of Form2 (the form containing the textBox controls).
    Form2 frm2 = new Form2();
// Make a call to the public property which will return the textBox's text.
    textBox1.Text = frm2.TextBox1;

Form2.cs:

1.制作一个textBox控件并将其命名为'textBox1'。

2.创建一个将返回textBox1引用的公共属性。

    public string TextBox1
    {
        get
        {
            return textBox1.Text;
        }
    }

那么,我们究竟在这做什么?

  1. Form1.cs ,我们正在调用 Form2.cs 中的公共属性“TextBox1”。
  2. Form2.cs 中的公开属性TextBox1会返回 Form2.textBox1 控件中的文本 - 这是控件你想要的文字。

答案 2 :(得分:1)

如果Form2是面板内的表单/用户控件,请创建public properties以“获取”每个文本框的值,然后在父表单(Form1)中引用这些属性。

例如,如果Form2具有名字和姓氏的文本框,请创建属性以获取其值:

public string FirstName
{
    get { return txtFirstName.Text; }
}

public string LastName
{
    get { return txtLastName.Text; }
}

然后在Form1中,假设form2是您插入到面板中的Form2的实例,您可以引用这样的属性:

string firstName = form2.FirstName;
string lastName = form2.LastName;