因此,我從GUI的另一頁製作Lable的顯示名稱(內容)。在意識到公共靜態void函數不能改變Displayname,因爲它不是靜態的,我搞砸了Events,並且有一個Handler設置爲在其他頁面發佈事件時運行。VisualC#無法更改控件的顯示名稱
它看起來像這樣
public void UpdateEventHandler(object sender, System.EventArgs e)
{
System.Windows.Forms.MessageBox.Show("Event Received");
tab1.DisplayName = Globals.tab1Name;
}
當事件熄滅消息框彈出,但顯示名稱不會改變。沒有錯誤,沒有任何東西。
問題不是Globals.tab1Name
,因爲我通過MessageBox運行它,並沒有問題。
所以我做了另一個按鈕,在同一頁上拉布勒:
private void Button_Click(object sender, RoutedEventArgs e)
{
tab1.DisplayName = Globals.tab1Name;
System.Windows.Forms.MessageBox.Show("clicked");
}
這一次所有的代碼工作,拉布勒改變的msgbox彈出。
我做了另一個函數,它有兩行代碼,用事件處理程序調用它,再次只有msgbox的作品。但是,當我用按鈕調用相同的功能時,它一切正常。
任何幫助將是偉大的,在此先感謝。
這是WinForms還是WPF?我沒有看到'Label'控件的任何'DisplayName'屬性。 – sab669
您的活動是在UI線程中提出的嗎?很顯然,如果不是,你應該會得到一個錯誤,但是也許你會在其他地方用'try/catch'聲明來隱藏消息。 – hofmeister
這可能是一個交叉線程問題,但不知道您正在使用的UI框架,它很難告訴您如何解決它。 –