C#中WPF怎么在一个窗口中调用另一个窗口中TextBox里已有的值

weixin_43254764 2019-08-07 06:59:25
两个不同的窗口中,第一个窗口的textbox的值 赋值给 第二个窗口的string变量 有大佬吗
...全文
1052 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
货郎大叔 2019-08-08
  • 打赏
  • 举报
回复
首先要找到窗口啊,什么项目
weixin_43254764 2019-08-07
  • 打赏
  • 举报
回复 1
大佬们 我发现我还得开学上课多认真听,是在不会 不过谢谢你们帮我
XBodhi. 2019-08-07
  • 打赏
  • 举报
回复 1
3个方法,第一个 静态对象传值,
第二个用委托和事件实时同步
第三个窗口回调
Eason0807 2019-08-07
  • 打赏
  • 举报
回复 1

private Action<object> callback = (args)=>
{
//dosomething;
};

private void Button_Click(object sender, RoutedEventArgs e)
{
LoginWindow login = new LoginWindow(callback);
login.Owner = this;
login.Show();
}
Eason0807 2019-08-07
  • 打赏
  • 举报
回复
如果你要子窗体给主窗体传值就要用委托了,就是show的时候传过去一个委托,子窗体用这个委托回调就行了,例如


weixin_43254764 2019-08-07
  • 打赏
  • 举报
回复
引用 10 楼 weixin_38641834的回复:
比如有两个窗体 WindowA和WindowB,假设由A来启动B,B的构造函数中可以定义一个参数,例如

public partial class WindowB : Window
{
public WindowB (string userName)
{
InitializeComponent();
this.userName = userName;
}

private string userName;

}

WindowA的Button事件中:

private void Button_Click(object sender, RoutedEventArgs e)
{
var win = new WindowB();
win.Owner = this;
win.Show(userName);
}
谢谢大佬 这个我知道 只是不知道 不用show如何传递 基础太差了
Eason0807 2019-08-07
  • 打赏
  • 举报
回复
比如有两个窗体 WindowA和WindowB,假设由A来启动B,B的构造函数中可以定义一个参数,例如

public partial class WindowB : Window
{
public WindowB (string userName)
{
InitializeComponent();
this.userName = userName;
}

private string userName;

}

WindowA的Button事件中:

private void Button_Click(object sender, RoutedEventArgs e)
{
var win = new WindowB();
win.Owner = this;
win.Show(userName);
}

weixin_43254764 2019-08-07
  • 打赏
  • 举报
回复
引用 8 楼 m0_38034077的回复:
[quote=引用 7 楼 weixin_43254764的回复:][quote=引用 6 楼 m0_38034077的回复:]a为主界面 b子界面 在b里定义一个属性呗 然后a在new的时候赋值过去然后在show
show不是有新的窗口了,能不能不用show的办法[/quote] 啥意思啊 就是这个参数是随时可变的? 那就委托[/quote] 对 按照用户输入而变化
m0_38034077 2019-08-07
  • 打赏
  • 举报
回复
引用 7 楼 weixin_43254764的回复:
[quote=引用 6 楼 m0_38034077的回复:]a为主界面 b子界面 在b里定义一个属性呗 然后a在new的时候赋值过去然后在show
show不是有新的窗口了,能不能不用show的办法[/quote] 啥意思啊 就是这个参数是随时可变的? 那就委托
weixin_43254764 2019-08-07
  • 打赏
  • 举报
回复
引用 6 楼 m0_38034077的回复:
a为主界面 b子界面 在b里定义一个属性呗 然后a在new的时候赋值过去然后在show
show不是有新的窗口了,能不能不用show的办法
m0_38034077 2019-08-07
  • 打赏
  • 举报
回复
a为主界面 b子界面 在b里定义一个属性呗 然后a在new的时候赋值过去然后在show
weixin_43254764 2019-08-07
  • 打赏
  • 举报
回复
求大佬顶啊@!!!!!!!!!!!!!!
weixin_43254764 2019-08-07
  • 打赏
  • 举报
回复
引用 2 楼 weixin_38641834的回复:
俩窗体啥关系?????
大佬 回复到了下面 看一下 就是一个登录界面和主界面
weixin_43254764 2019-08-07
  • 打赏
  • 举报
回复
我在主界面中用了这个 public string user1; private void User_Click(object sender, RoutedEventArgs e) { string UserName = this.UserBox.Text; string PassWord = this.PassWordBox.Text;//同上 是textbox控件 user1= UserName; ........} 在子界面中用了 MainWindow temp = new MainWindow(); temp.user获取在主界面textbox的值 并插入数据库 得到的是这个 不是我想要的结果 看最后 是一个命名 不是我输入的结果 怎么改 求大佬
Eason0807 2019-08-07
  • 打赏
  • 举报
回复
俩窗体啥关系?????
weixin_43254764 2019-08-07
  • 打赏
  • 举报
回复
网上查了很多,一天头都晕了

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧