设置文本框的可见度从form1到form2

本文关键字:form1 form2 可见度 置文本 | 更新日期: 2023-09-27 18:10:22

从其他形式我想设置可见性的文本框在这个形式,但我不知道如何调用文本框和设置属性可见= false。

我尝试用枚举,但我仍然不能解决问题。我不能投射或做任何事情。所以我怎么能调用textBox从form1到form2…

我正在使用c#和CF 3.5

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

这是我所有的文本框的名称。我有文本框的名称像txtEan, txtpredmetobravnaave,…

设置文本框的可见度从form1到form2

在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;
        }
}

假设你想为textbox1的form1设置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);
    }
}

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

    public static Form1 MainForm;
    public static Form2 ChildForm;

进入Form1,使事件:form加载把:

Globals.MainWindow = this;

:

CheckForIllegalCrossThreadCalls = false;

,并在Form2中使用ChildForm做同样的事情现在你可以用:global . childform . textbox1调用form2。

编辑:别忘了把你的textBox设为public