0

我正在尝试将标签从一种形式更新到另一种形式。代码编译正常但没有更新?

Class MainWindow 

    Private Sub Window_Loaded(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
        Dim frm As New Window1
        frm.Show()
    End Sub
End Class

第二种形式:

Public Class Window1

    Private Sub Button1_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click
        My.Windows.MainWindow.Label1.Content = "dsfdsfsdf"
        My.Windows.MainWindow.Label1.UpdateLayout()
    End Sub
End Class

它不会更新主表单的标签...希望它更清楚

4

1 回答 1

1

所以这是您实际需要的代码:

公共课窗口1

Private Sub Button1_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click
    DirectCast(Application.Current.MainWindow, MainWindow).Label1.Content = "test"
End Sub

结束类

我不确定My.Windows集合是什么,但它Application.MainWindow为您提供了对在项目属性中设置为启动对象的窗口的引用(或您在 app.xaml.cs 文件中设置的那个)。以前您可能会获得对该Window1类的不同实例的引用,因此它正在运行并且不会引发异常,但是由于它不是窗口的实际可见实例,因此您看不到任何更改。

于 2012-06-18T20:05:37.690 回答