C#winform中有多个窗体,点击form1窗体的button弹出form2,from2中要用到form1中listbox1选中项进行操作

我在form2中定义了,form1frm=newform1();然后把Modifiers也改成Public了,但是我去frm.listbox1.selecteditem时... 我在form2中定义了,form1 frm=new form1();然后把Modifiers也改成Public了,但是我去frm.listbox1.selecteditem时候却是空的不是道为什么啊 展开
 我来答
菜芽芽
2012-08-01 · TA获得超过1236个赞
知道小有建树答主
回答量:1000
采纳率:100%
帮助的人:306万
展开全部
你应该就是想把form1的选中项的值传给form2吧
是的话,可以在form2里定义一个属性比如public String str1="';
在form1执行弹出form2时:
form2 frm==new form2();
frm.str1="你的选中项的值";
frm.show();
在form2里面直接取str1就可以了~
yangquneng
2012-08-01 · TA获得超过177个赞
知道小有建树答主
回答量:200
采纳率:100%
帮助的人:50.9万
展开全部
因为你是在form1中弹出form2
然后又在form2中new出来一个新的form1——frm
两个form1根本就不是同一个对象
获取到的frm.listbox1.selecteditem当然是空的

//Form2:
private object item;
public Form2(object item) : this()
{
this.item = item;
}

//Form1:
Form2 form2 = new Form2(this.listbox1.selecteditem);
form2.Show();
//from2.ShowDialog();
更多追问追答
追问
这样是可以实现,但是每次要执行都必须弹出来form1,也太丑了
追答
“点击form1窗体的button弹出form2”
你不弹出form1,怎么在form1上点按钮button?!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
7344667
2012-08-01 · TA获得超过126个赞
知道小有建树答主
回答量:224
采纳率:100%
帮助的人:156万
展开全部
缺少一个很重要的东西!owner_type...........
Form2 f = new Form2();
f.Owner = this;
f.Show(this);就能把当前form1下的所有控件的值传过去了!
然后在Form2中
Form2 f2 = (Form2)this.Owner;
Form1控件的值等于f2.控件名称.Text;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友26c14b1d3
2012-08-01 · TA获得超过336个赞
知道小有建树答主
回答量:472
采纳率:0%
帮助的人:327万
展开全部
方法有多种,在form2定义一个Listview类型的属性,从form1 new form2时,把form1中listview对象复制一份赋给form2的属性,在form2直接用就可以了;
还可以将form1这个对象整体作为参数通过构造参数传给form2,同样可以在form2中使用form1中所有公开的控件及方法属性等。
两种方法各有优缺点。、
当然还有其他方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
coolzhengtao
2012-08-01 · TA获得超过208个赞
知道小有建树答主
回答量:174
采纳率:0%
帮助的人:146万
展开全部
你最好在form1中的listbox选中事件作如下操作
定义一个类变量存选中的行,将这个行设置成public然后在form2中访问,这样就应该可以了,如果还是访问不上就看下选中事件运行没有,最好debug
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fjkejian
2012-08-02 · 超过85用户采纳过TA的回答
知道小有建树答主
回答量:174
采纳率:0%
帮助的人:177万
展开全部
你只需要在form2 窗体定义一下属性.比如
string SelectItem;
public string Item选中项
{
set
{
SelectItem = value;
if(value.lenght == 0) return;
在这里一并实现选中后要运行的代码
}
}
然后在form1窗体选中事件中 访问frm.Item选中项 = "";即可当然属性的类型可以改成你选中的LISTBOXITEM
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式