从其他表单编辑标签控件

时间:2012-10-13 09:25:33

标签: c#

  

可能重复:
  C# Text don’t display on another form after double clicking an item in listbox

我是c#的初学者。我想在用户点击按钮lblTextsubForm时编辑mainForm形式的标签btnHigh。{这些按钮位于{ {1}})。

btnLow

我尝试了以下代码:(无法正常工作

btnHigh_Click事件

mainForm

我在这里做错了什么?

请帮助
提前致谢。

3 个答案:

答案 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();