社区
C#
帖子详情
窗体数据回传
chenxisen
2006-09-06 11:23:34
各位好:
小弟问一小问题,请各位帮忙解决.
假设有两窗体A ,B
A窗体中有空间 listbox1 ,button1,
B窗体中有空间 listbox2 ,button2,
我现在想实现的是想在A窗体中通过点button1 ,显示窗体B,在B中做些操作,然后再把B窗体中的
listbox2的所有项全部回传到A并在listbox1中显示 ,
好象有个showdialog()的方法,请赐教!
...全文
102
9
打赏
收藏
窗体数据回传
各位好: 小弟问一小问题,请各位帮忙解决. 假设有两窗体A ,B A窗体中有空间 listbox1 ,button1, B窗体中有空间 listbox2 ,button2, 我现在想实现的是想在A窗体中通过点button1 ,显示窗体B,在B中做些操作,然后再把B窗体中的 listbox2的所有项全部回传到A并在listbox1中显示 , 好象有个showdialog()的方法,请赐教!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wuhuiITren
2006-09-06
打赏
举报
回复
怎么样得到其他窗体 的数据集???
dlzhangln
2006-09-06
打赏
举报
回复
回传窗体的时候,如果有数据集的话,大部分要重新邦定一下,另外要保证窗体的唯一,翻一下前几天的帖子,很多
dlzhangln
2006-09-06
打赏
举报
回复
修改构造函数
或者创建属性
或者做静态类
这三个方法都可以
dlzhangln
2006-09-06
打赏
举报
回复
http://blog.csdn.net/zhzuo/archive/2004/04/05/22027.aspx
这里的第二个例子
wuhuiITren
2006-09-06
打赏
举报
回复
路过,我也想明白,这些值又怎么传给listBox1呢??
dlzhangln
2006-09-06
打赏
举报
回复
说明:在这个例子中我们的两个窗体都加了一个ListBox用来显示ArrayList中的内容。
主窗体中控件:listBoxFrm1,buttonEdit;
子窗体中控件:listBoxFrm2,textBoxAdd,buttonAdd,buttonEdit,buttonOK。
这次我们用ArrayList来作为传递数据,在Form1中定义类数据成员:
private ArrayList listData1;
在构造函数中增加了对listData1进行内存分配,并生成数据最终绑定到listBoxFrm1,
public Form1()
{
InitializeComponent();
this.listData1 = new ArrayList();
this.listData1.Add("DotNet");
this.listData1.Add("C#");
this.listData1.Add("Asp.net");
this.listData1.Add("WebService");
this.listData1.Add("XML");
this.listBoxFrm1.DataSource = this.listData1;
}
另外,对修改按钮点击事件处理函数的修改如下:
private void buttonEdit_Click(object sender, System.EventArgs e)
{
Form2 formChild = new Form2(this.listData1);
formChild.ShowDialog();
this.listBoxFrm1.DataSource = null;
this.listBoxFrm1.DataSource = this.listData1;
}
相对与主窗体,对子窗体作相应修改,也在Form2中增加了类数据成员:
private ArrayList listData2;
用来保存对主窗体中listData1的引用。
修改构造函数:
public Form2(ArrayList listData)
{
InitializeComponent();
this.listData2 = listData;
foreach(object o in this.listData2)
{
this.listBoxFrm2.Items.Add(o);
}
}
这里让listData2同listData1指向同一个引用;另外没有对listBoxFrm进行绑定,采用了填充。
好了,下面是对数据操作的时候了。
添加处理函数代码如下:
private void buttonAdd_Click(object sender, System.EventArgs e)
{
if(this.textBoxAdd.Text.Trim().Length>0)
{
this.listData2.Add(this.textBoxAdd.Text.Trim());
this.listBoxFrm2.Items.Add(this.textBoxAdd.Text.Trim());
}
else
MessageBox.Show("请输入添加的内容!");
}
删除处理代码如下:
private void buttonDel_Click(object sender, System.EventArgs e)
{
int index = this.listBoxFrm2.SelectedIndex;
if(index!=-1)
{
this.listData2.RemoveAt(index);
this.listBoxFrm2.Items.RemoveAt(index);
}
else
MessageBox.Show("请选择删除项或者没有可删除的项!");
}
退出Form2子窗体:
private void buttonOK_Click(object sender, System.EventArgs e)
{
this.Close();
}
编译运行程序,在子窗体中对数据进行修改,关闭后,主窗体就会显示更新后的数据。
JasonHeung
2006-09-06
打赏
举报
回复
button1_Click (...)
{
B b = new B();
if (DialogResult.OK == b.ShowDialog())
{
//获取list2的数据
for (int i = 0 ; i < b.listBox2.GetItemCount(); ++i)
{
for (int j = 0 ; j < b.listBox2.GetColumnCount(); ++j)
{
string s = b.listBox2.GetItemText(i,j);
}
}
}
}
happyhippy
2006-09-06
打赏
举报
回复
FormA Click事件:
FormB b = new FormB(listBoxA)
b.Show();//或者ShowDialog();也可以
FormB:
ListBox refListBoxA;//定义一个引用,指向FormA中的listBoxA;
public FormB(ListBox listBoxA)//构造函数接受一个ListBox实例
{
this.refListBoxA = listBoxA;
//其他初始化代码;
}
//FormB中可以对refListBoxA进行任何操作,且对其的修改可以影响到FormA
Knight94
2006-09-06
打赏
举报
回复
参看
http://blog.csdn.net/Knight94/archive/2006/08/22/1104957.aspx
C#(Winfrom)
窗体
传值问题(子
窗体
回传
值给父
窗体
).
子
窗体
回传
值给父
窗体
C#(Winfrom)
窗体
传值问题(子
窗体
回传
值给父
窗体
).txt
C#多
窗体
之间
数据
传递
本文件用通俗易懂的代码展示了多
窗体
之间的
数据
传递,主要使用了委托
主
窗体
和子
窗体
互传消息
主
窗体
向子
窗体
传递
数据
,子
窗体
利用
数据
显示或根据
数据
查询等等,子
窗体
完成之后,可以
回传
消息给主
窗体
,可以刷新主
窗体
和在主
窗体
上显示你需要的子
窗体
内容。
WPF父子
窗体
传输示例
WPF父子
窗体
传输示例,父
窗体
向子
窗体
传参。子
窗体
回传
参数到父
窗体
。 WPF showdialog模式。
c# 两
窗体
之间互相传值
c#下两个
窗体
之间互相传值的实例 实现的思路: 从Form1传递到Form2: 2个
窗体
即两个类,两个
窗体
间的
数据
传送,可以采用构造函数来实现。 从Form2返回到Form1,并传递
数据
:实例化Form2后,打f2用ShowDialog()方法,然后等待f2关闭时再
回传
数据
到Form1。
C#
110,539
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章