0

我想从form1上的textbox1获取输入并将其设置在form2的textblock1上,但文本不会显示

表格1代码:

    private void Button_Click_3(object sender, RoutedEventArgs e)
    {
        var file = await ApplicationData.Current.LocalFolder.GetFileAsync(textbox1.Text + ".txt");
        var line = await FileIO.ReadLinesAsync(file);
        if (textbox1.Text == line[0] && tb2.Password == line[1])
           {
               textbox1.Text = line[0];
               Frame.Navigate(typeof(form2));                    
           }
    }

    public string MyValue
    {
        get { return textbox1.Text; }
    }

form2上的代码

    var logged = new MainPage();
    textblock1.Text = logged.MyValue;

有什么帮助吗?感谢:D

4

2 回答 2

3

试试form1

 Frame.Navigate(typeof(form2), textbox1.Text);   

表格2

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    string name = e.Parameter as string;

    if (!string.IsNullOrWhiteSpace(name))
    {
          textblock1.Text = name ;
    }
    else
    {
        textblock1.Text = "Name is required.  Go back and enter a name.";
    }
}

这个链接可能有帮助

于 2012-12-02T09:55:01.753 回答
1

您没有获得所需的值,form2因为您正在创建一个新实例,MainPage该实例当然不包含您刚刚从中导航的实例的值。

您需要将该值作为参数传递给form2. 为此,您可以使用不同的重载,Navigate其中需要一个附加参数:

private void Button_Click_3(object sender, RoutedEventArgs e)
{
    var file = await ApplicationData.Current.LocalFolder.GetFileAsync(textbox1.Text + ".txt");
    var line = await FileIO.ReadLinesAsync(file);
    if (textbox1.Text == line[0] && tb2.Password == line[1])
    {
        textbox1.Text = line[0];
        Frame.Navigate(typeof(form2), textbox1.Text);                    
    }
}
于 2012-12-02T09:36:56.727 回答