在textBox上设置从form1到form2的可见性

时间:2011-10-03 10:29:55

标签: c# compact-framework

从其他表单我想在此表单上设置textBoxes的可见性,但我不知道如何调用TextBoxes并设置属性Visible = false。

我尝试使用Enums但我仍然无法解决问题。我不能演员或做任何事情。那么如何将textBox从form1调用到form2 ......

我正在使用C#和CF 3.5

public enum VnosTextBoxType
    {
        Ean, PredmetObravnave, Tse, Kolicina, EnotaMere, 
        Lokacija, Zapora, Sarza, SarzaDobavitelja, Datumod, 
        DatumDo 
    } 

这是我所有TextBox的名称。我有TextBox,其名称类似于txtEan,txtPredmetObravnave,..

3 个答案:

答案 0 :(得分:1)

如何在Form2上编写如下方法:

public void SetTBVisible(string name, bool visible)
{
    this.Controls[name].Visible = visible;
}

并将此表单称为Form1?

已编辑:

public void SetTBVisible(string name, bool visible)
{
    string cName = name.ToLower();
    foreach(Control c in this.Controls)
        if (c.Name.ToLower() == cName)
        {
            c.Visible = visible;
            break;
        }
}

答案 1 :(得分:1)

创建一个名为Globals.cs的新类 写:

    public static Form1 MainForm;
    public static Form2 ChildForm;

转到Form1并进行事件:表单加载 放:

Globals.MainWindow = this;

CheckForIllegalCrossThreadCalls = false;

并在Form2中使用ChildForm执行相同操作 现在你可以调用form2:Globals.ChildForm.TextBox1.Visible = false;

编辑:不要忘记将textBox公开。

答案 2 :(得分:1)

假设您要为form1的textbox1设置Visible = false

当您创建form2的实例时,您已将form1的实例传递到其构造函数中,如此

Class Form1 : Form 
{
    public void setTextbox(bool val)
    {
       this.Textbox1.visible=val;
    }
    Public void showForm2()
    {
       Form2 f2= new Form2(this);
       f2.show();
    }        
}

Class Form2 : Form 
{
    Form1 f1;

    public Form2(Form form1)
    {
        f1=form1;
    }

    public void setTb()
    {
    f1.setTextbox(false);
    }

}

我希望这会对你有所帮助