如何使用按钮刷新第二个窗口,请单击第一个

时间:2019-02-01 12:55:43

标签: c# wpf

如何在第一个窗口上单击按钮刷新secodn窗口。

我是WPF的新手,已经搜索了很长时间,但是我发现的答案不起作用。我正在尝试在第二个窗口上发布的主文本框中编写文本。到目前为止,我已经拥有了,但是我只能在使用win1.show()时使用它。这将显示一个新的弹出屏幕,其中包含键入的文本,但不在同一页面上。所以我怎么能得到这个而不是弹出来刷新。

主窗口:

    Title="MainWindow" Height="1050" Width="1680" ResizeMode="CanResizeWithGrip" Topmost="False" WindowState="Normal" Icon="./Resources/escapehaarlem_logo.ico" >
<Grid Background="Gray">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="1593*"/>
        <ColumnDefinition Width="80*"/>
    </Grid.ColumnDefinitions>
    <Button Content="Verstuur" HorizontalAlignment="Left" Margin="1330,10,0,0" VerticalAlignment="Top" Width="334" Height="85" Grid.ColumnSpan="2" Click="Verstuur_Button_Click"/>
    <Button Content="Verwijder" HorizontalAlignment="Left" Margin="1330,100,0,0" VerticalAlignment="Top" Width="334" Height="85" Grid.ColumnSpan="2" Click="Verwijder_Button_Click_1"/>
    <TextBox Name="Textbox" HorizontalAlignment="Left" Height="1000" Margin="10,10,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="1315"/>
</Grid>

第二个窗口:

Title="MainWindow" Height="1050" Width="1680" ResizeMode="NoResize" Topmost="True" WindowState="Maximized" Icon="./Resources/escapehaarlem_logo.ico" >
<Grid Background="Black">
    <Label Name="lbl_Tekst" Content="" HorizontalAlignment="Left" VerticalAlignment="Top" Foreground="White" Height="1020" Width="1673"/>
</Grid>

代码主窗口:

   public partial class MainWindow : Window
{
    string hint = "";
    string verwijder = "";

    Window1 win1 = new Window1();

    public MainWindow()
    {
        InitializeComponent();
        win1.Show();
    }

    private void Verstuur_Button_Click(object sender, RoutedEventArgs e)
    {
        hint = Textbox.Text;
        Window1 win1 = new Window1(hint);
        win1.Show();
    }

    private void Verwijder_Button_Click_1(object sender, RoutedEventArgs e)
    {
        Textbox.Text = verwijder;
        Window1 win1 = new Window1(verwijder);
        win1.Show();
    }
}

代码第二个窗口:

public partial class Window1 : Window
{
    public Window1()
    {
        InitializeComponent();
    }
    public Window1(string hint) : this()
    {
        lbl_Tekst.Content = hint;
    }
}

希望您可以帮助使其刷新,而不是新的弹出屏幕。

1 个答案:

答案 0 :(得分:0)

Window1类上创建一个方法来更新标签。
喜欢:

public void UpdateLabel(string text)
{
    lbl_Tekst.Content = text;
}

然后您可以像这样从MainWindow调用它:

win1.UpdateLabel("I am updated content");  

然后,您应该更新该标签的内容。但是,我建议您阅读MvvM和DataContexts,这将使您无需实际引用这些元素即可更轻松地操作UI元素的内容。