从另一个表单获取文本框的值

时间:2012-11-19 13:09:47

标签: c# visual-studio-2010

我有一个包含菜单和停靠面板的c#windows应用程序。如果单击菜单上的任何元素,则停靠面板上会显示一个表单

有一个包含搜索文本框的图书表单。

在菜单中有一个名称(保存)的项目用于保存布局以供其他用途,并且在保存布局后打开的表单仍然作为选项卡在停靠面板中打开

注意:用户可以多次打开相同的表单


我需要的是,当用户点击保存链接时,我需要从图书表单中获取搜索文本框的值,并将其设置为主窗体中的变量。


任何帮助?

3 个答案:

答案 0 :(得分:0)

添加一个公共属性,作为搜索文本框Text属性的包装器。

public string SearchString
{
    get {
        return searchTextbox.Text; // Where the searchTextbox is id of the textbox
    }
}

然后可以在表单实例上引用它。

答案 1 :(得分:0)

在主窗体上添加一个函数来设置变量的值:

private void My_method(string value)
    {        
        your_variable = value;              
    }

现在,在打开BookForm时,将主窗体作为参数传递给Book Form构造函数,如此

Main_Form _fd;
public BookForm(Main_form fd)
    {
        InitializeComponent();
        _fd = fd;
    }

现在您可以在此表单的任何位置调用Mainform函数,如: -

_fd.My_method(searchtextBox.text);

现在,用户无需一次又一次地打开和关闭表单!希望它会对你有所帮助!

答案 2 :(得分:0)

List<String> texts = new List<String>();
foreach(Form form in Application.OpenForms){
    if (form.Name == "bookForm"){
        TextBox textbox= form.Controls[<your textbox namr>] as TextBox;
        texts.Add(textbox);
    }
}

然后您可以使用此文本列表