可能重复:
C# Text don’t display on another form after double clicking an item in listbox
我是c#的初学者。我想在用户点击按钮lblText
和subForm
时编辑mainForm
形式的标签btnHigh
。{这些按钮位于{ {1}})。
btnLow
我尝试了以下代码:(无法正常工作)
btnHigh_Click事件
mainForm
我在这里做错了什么?
请帮助
提前致谢。
答案 0 :(得分:2)
在显示表单之前,您需要先更改值
subForm sf = new subForm ();
sf.lblText.Text = "High";
sf.ShowDialog();
答案 1 :(得分:1)
你写的是错的
subForm sf = new subForm ();
sf.ShowDialog();
sf.lblText.Text = "High"; // lblText --> modifier is public
ShowDialog
方法阻止当前表单并打开另一个表单。那就是排
sf.lblText.Text = "High";
关闭后subForm
“运行”。
这样做的最好方法是不要将文本框设置为公共文本框,但是您可以在构造函数中传递数据:
在subForm类中添加构造函数:
public subForm(string strText)
{
InitializeComponent();
this.lblText.Text = strText; // Must be after the InitializeComponent method
}
在subForm的调用者中写下:
subForm sf = new subForm ("High");
sf.ShowDialog();
这是做到这一点的正确方法
最好避免使用公共许可来做这类事情。因为subForm
中的所有“世界”都不需要知道它有一个名为lblText的标签,并且用于管理对subForm
数据的访问。
答案 2 :(得分:0)
您可以为subForm创建公共属性:
public string lblText{get;set;}
并在“加载表单”上设置此属性:
public subForm()
{
InitializeComponent();
lblText.Text=lblText;
}
和:
subForm sf = new subForm ();
sf.lblText = "High";
sf.ShowDialog();