所以我从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工作。但是当我用按钮调用相同的功能时,一切正常。
任何帮助都会很棒,提前谢谢。
答案 0 :(得分:0)
MessageBoxes暂停执行当前线程。因此,当您首先显示MessageBox时,第二行不会被命中,因此字符串不会更新
答案 1 :(得分:0)
尝试添加显示名称作为表单加载的参数。默认情况下,表单有sender和e作为参数,但您也可以随时添加自己的。