VisualC#无法更改Control的DisplayName

时间:2015-09-21 13:54:25

标签: c# .net

所以我从GUI的另一个页面制作了Lable的显示名称(内容)。在实现公共静态void函数之后无法更改Displayname因为它不是静态的,我搞乱了事件并且在其他页面发布事件时设置了一个Handler来运行。

看起来像这样

    public void UpdateEventHandler(object sender, System.EventArgs e)
    {
        System.Windows.Forms.MessageBox.Show("Event Received");
        tab1.DisplayName = Globals.tab1Name;
    }

当事件消失时,弹出消息框但DisplayName不会更改。 没有任何错误,没有。

问题不是Globals.tab1Name,因为我通过MessageBox运行它并且没问题。

所以我在与Lable相同的页面上创建了另一个按钮:

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        tab1.DisplayName = Globals.tab1Name;
        System.Windows.Forms.MessageBox.Show("clicked");
    }

这次所有代码都工作了,标签发生了变化,并且弹出了msgbox。

我使用相同的两行代码创建了另一个函数,用事件处理程序调用它,同样只有msgbox工作。但是当我用按钮调用相同的功能时,一切正常。

任何帮助都会很棒,提前谢谢。

2 个答案:

答案 0 :(得分:0)

MessageBoxes暂停执行当前线程。因此,当您首先显示MessageBox时,第二行不会被命中,因此字符串不会更新

答案 1 :(得分:0)

尝试添加显示名称作为表单加载的参数。默认情况下,表单有sender和e作为参数,但您也可以随时添加自己的。