设置文本框的可见度从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,…
在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