从其他表单我想在此表单上设置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,..
答案 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);
}
}
我希望这会对你有所帮助