社区
C#
帖子详情
关闭子窗口的同时将值提交给父窗口并在父窗口中显示
szyjp
2009-12-26 11:33:54
如上图,
请问在关闭选择出版社的窗口时,将选中的出版社ID和名称填到父窗口:入库单中的出版社文本框中?
...全文
634
18
打赏
收藏
关闭子窗口的同时将值提交给父窗口并在父窗口中显示
如上图, 请问在关闭选择出版社的窗口时,将选中的出版社ID和名称填到父窗口:入库单中的出版社文本框中?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
linekery
2009-12-27
打赏
举报
回复
用ShowDialog() 多好。。
这不是没事找罪受么
wuyq11
2009-12-26
打赏
举报
回复
winform间传值
通过公共静态类进行传值;
通过绑定事件进行传值;
使用Attribute
public partial class Form1 : Form
{
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.Show(this);
}
}
public partial class Form2 : Form
{
private void button1_Click(object sender, EventArgs e)
{
Form1 frm1 = (Form1)this.Owner;
((TextBox)frm1.Controls["textBox1"]).Text = this.textBox2.Text;
this.Close();
}
}
mngzilin
2009-12-26
打赏
举报
回复
[Quote=引用 13 楼 szyjp 的回复:]
不行啊大哥:
(this.Owner.Controls["txtPudid"] as TextBox).Text = this.txtPudid.Text;
(this.Owner.Controls["txtPudName"] as TextBox).Text = this.txtPudName.Text;
运行报错:
未将对象引用设置到对象的实例。
使用new 关键字创建对象实例.
[/Quote]
如果你的txtPudid和txtPudName放在其他容器中,如panel等,可能会找不到。
下面这样试试:
(this.Owner.Controls["容器Id"].Controls["txtPudid"] as TextBox).Text
顺便把你的代码贴些出来。要form1的
szyjp
2009-12-26
打赏
举报
回复
不行啊大哥:
(this.Owner.Controls["txtPudid"] as TextBox).Text = this.txtPudid.Text;
(this.Owner.Controls["txtPudName"] as TextBox).Text = this.txtPudName.Text;
运行报错:
未将对象引用设置到对象的实例。
使用new 关键字创建对象实例.
linekery
2009-12-26
打赏
举报
回复
使用 ShowDialog()
if(selectForm.ShowDialog() == DialogResult.OK)
{
mailForm.出版ID = selectForm.出版ID;
}
selectForm 就是你的 弹出窗口 这段代码是在你的主窗口的 事件里执行的。
在弹出窗口的确定事件中 给DialogResult 赋值 为DialogResult.OK 窗口就会自动退出
从而转到上面的 if 语句中
szyjp
2009-12-26
打赏
举报
回复
好的,谢谢,我试一下看看
mngzilin
2009-12-26
打赏
举报
回复
方法较多,我4和6楼写法错误,不好意思,看8楼和9楼就可以了
mngzilin
2009-12-26
打赏
举报
回复
你还可以这样:
Form1为父窗口,fm2为子窗口:
private void button1_Click(object sender, EventArgs e)
{
Form2 fm2 = new Form2();
fm2.Owner = this;
//设置它的拥有者
fm2.Show();
}
在form2中如下:
(this.Owner.Controls["checkBox1"] as CheckBox).Checked = true;
mngzilin
2009-12-26
打赏
举报
回复
父窗口为fm1,里面有button1和checkbox1,按钮事件如下:
private void button1_Click(object sender, EventArgs e)
{
Form2 fm2 = new Form2(
this
);//这里传递this
fm2.Show();
}
子窗口为fm2,里面有button1,事件如下:
public partial class Form2 : Form
{
Form1 fm1;
public Form2(
Form1 fm1
)
{
InitializeComponent();
this.fm1 = fm1;
}
private void button1_Click(object sender, EventArgs e)
{
(fm1.Controls["checkBox1"] as CheckBox).Checked = true;
}
}
szyjp
2009-12-26
打赏
举报
回复
请问6楼:
你的form2是父窗口还是子窗口?
你的这一段应该是写在子窗口中吗?
mngzilin
2009-12-26
打赏
举报
回复
(form2.Parent as form1).TextBox1.text="safasfsaf"
szyjp
2009-12-26
打赏
举报
回复
不好意思,初学不久,4楼的代码是什么意思?能详细说明吗?
mngzilin
2009-12-26
打赏
举报
回复
form1 fm=form2.Parent as form1
fm.XXXX=
szyjp
2009-12-26
打赏
举报
回复
我已按2楼的做了:
private void butOK_Click(object sender, EventArgs e)
{
if (this.txtPudid.Text!= "" && this.txtPudName.Text != "")
{
Frm_Insert.pudid = this.txtPudid.Text;
Frm_Insert.pudName = this.txtPudName.Text;
this.Close();
}
else
{
MessageBox.Show("请先选择出版社!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop);
}
}
现在的问题是:
我已将值传给父窗口的静态变量了,但如何在父窗口中:出版社的文本框中显示呢?
liangzhl
2009-12-26
打赏
举报
回复
在父窗口中声明一个公共变量public string cbs;
public string id;
在子窗体中frm1 fm=new frm1();
fm.cbs=frm2.出版社的名称;
fm.id=frm2.出版社的编号;
liherun
2009-12-26
打赏
举报
回复
重新去数据库查询吧
szyjp
2009-12-26
打赏
举报
回复
非常感谢 mngzilin !
你的方法OK,搞掂了!
再次感谢各位!
结贴!
tianliang1
2009-12-26
打赏
举报
回复
又是窗体间通信的问题。。。
【鸿蒙原生应用】
窗口
管理
学习
窗口
的基本概念与在OpenHarmony
中
的使用场景学习不同
窗口
类型在
窗口
层级
中
的位置学习设置三方应用的应用主
窗口
属性学习设置三方应用全屏状态下系统
窗口
的属性
jquery
子
窗口
给
父
窗口
元素赋
值
和获得
值
,
子
窗口
调取
父
窗口
方法,
父
窗口
调取
子
窗口
方法
jquery
子
窗口
给
父
窗口
元素赋
值
和获得
值
,
子
窗口
调取
父
窗口
方法,
父
窗口
调取
子
窗口
方法 1.
子
窗口
给
父
窗口
元素赋
值
<!-- 主题id rz--> <input type="hidden" id="theme_id"> /** * 修改主题详情 * @param id */ function modifyTheme(id){ $("#theme_id"...
layui
父
页面打
子
窗口
后,
子
窗口
ajax查询数据成功后自动
关闭
,并将数据返回给
父
页面
场景:
父
级页面是列表页,当
父
级页面点击搜索新闻时,弹出
子
窗口
(type:2),并在
子
窗口
中
进行关键字的输入,由ajax
提交
到后台模糊搜索匹配到对应的字段,ajax请求成功后并
关闭
当前打开的
子
窗口
,
关闭
子
窗口
的同时将查询到的数据传递回去给
父
页面。 思路:(在
父
页面
中
定义方法,
子
页面
中
拿到
父
页面的方法,用方法的参数进行传
值
) 1.实现打开
子
窗口
,
子
窗口
的type:2,在页面
中
进行表单数据的获取...
子
窗口
关闭
刷新
父
窗口
或者某个控件事件或者传递
值
到
父
窗口
做程序过程,经常遇到弹出新
窗口
设置或者编辑,
关闭
新
窗口
需要在
父
窗口
中
刷新部分控件或者数据,又不想刷新
父
窗口
整个页面,因为
父
窗口
部分输入或者部分操作会因为重新刷新重置。比如:通过弹出
窗口
来编辑和新增信息,当保存完成
子
窗口
关闭
时自动刷新
父
页面上的一个gridview,将数据
显示
出来。通过jsp的 window.parent.opener.document.getElementById()解决这个问题
关闭
子
窗口
父
窗口
刷新
一、方法一:使用window.open()方法。 在
父
窗口
中
的html代码: 添加新闻 在
父
窗口
中
的js代码,通过window.open()打开
子
窗口
: $("#addnews").click(function(){ var url='manage/newsAdd.jsp?userId='; //转向网页的地址; var name=''; //网页名称,可为空
C#
110,560
社区成员
642,566
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章