我想从form1上的textbox1获取输入并将其设置在form2的textblock1上 但文字不会显示
form1代码:
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
答案 0 :(得分: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.";
}
}
这link可能有帮助
答案 1 :(得分: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);
}
}