c#winform中一个窗体要使用另一个窗体的dgv控件显示list集合数据,怎么显示不了

如:List<Foodlist>lists=newList<Foodlist>();foreach(FoodClassfoodsinlist)//遍历集合{Foodlis... 如:
List<Foodlist> lists = new List<Foodlist>();
foreach (FoodClass foods in list) //遍历集合
{
Foodlist foodlist = new Foodlist();
foodlist.Name = foods.FoodName;
foodlist.Number = foods.Number;
foodlist.Price = foods.Price;
lists.Add(foodlist);
}

FrmUser frmuser = new FrmUser();
frmuser.DGV_Oder.DataSource = lists;//绑定选中数据
FrmUser 窗体里的DGV_Oder加载不了数据
展开
 我来答
super_syc
2013-09-11 · TA获得超过105个赞
知道小有建树答主
回答量:122
采纳率:0%
帮助的人:144万
展开全部
在你实例化FrmUse窗体的时候,你的DGV_Order空间已经生成了,数据源默认是空的,你在外部给dgv绑定数据源是无效的,所以显示大雀不了,dgv的数据源必须要在初始化的时候绑定,也就是在你的frmUser_load的时候,所以你可以重载你FrmUser的构造方法,把数据源传过去,然后在FrmUser那边接收,直接给dgv绑定即可,还有另外一种方式,就是把你的dgv设置成公共静态控件,即 把其private改为public stati,然后你在上面的代氏仿宴码中就不要实例化FrmUser了歼银,直接类名访问dgv,绑定数据源即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
IoSaber
2013-09-11
知道答主
回答量:5
采纳率:0%
帮助的人:7万
展开全部
在FrmUser类运迅里,再多加一个构造函数:
public FrmUser (List<Foodlist> i_lst)
{
InitializeComponent();
this.DGV_Oder.DataSource = i_lst;//绑定选中数据
}

在第一个窗体里,打旁轿此开FrmUser窗体,用以下帆山方式打开:
FrmUser frmuser = new FrmUser(lists);
追问
为什么会出现可访问性不一致啊
追答
一般你要给另一个类或者窗体赋值,最好写上get和set,或者在希望被赋值的类里,增加一个public的函数,要么就是在构造函数上做手脚了。

还可以以读取数据库的形式。比如第一个窗体把数据存进数据库中,打开第二个窗体后读取出来绑定到控件上。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
denveryang3633
2013-09-11 · TA获得超过266个赞
知道小有建树答主
回答量:342
采纳率:0%
帮助的人:154万
展开全部
建议使用bindingsource,然后将bindingsource作为参数在两个form之间操作
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式