从窗口引用主窗口?

litgle 2008-10-10 09:38:14
一个主窗口,包含一个dgv控件,绑定的数据源是多表的。

主窗口按“+”弹出从窗口,从窗口包含一个textbox,用来输入字符作为关键字查询表table1,查询的结果只有一条,并添加到主窗口的dgv里。

现在发现在从窗口写代码的时候,不能引用主窗口的dgv控件,难道只能用参数传递的办法吗?
...全文
91 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
litgle 2008-10-10
  • 打赏
  • 举报
回复
出错了:(

"当控件被数据绑定时,无法以编程方式向DataGridView的行集合添加行。"
zx005 2008-10-10
  • 打赏
  • 举报
回复
把dgv改成public

然后在按"+"时将从窗口的Owenr = this;

在从窗口输入时用
主窗口 frm = (主窗口)this.Owner;
就可以永frm.dgv来操作dgv控件了
litgle 2008-10-10
  • 打赏
  • 举报
回复
待我把一些先决条件的问题解决后,再来试试楼上几位的方法和结帖。
wwszzzz88 2008-10-10
  • 打赏
  • 举报
回复
首先将主窗体中需要在其它窗体中操作的控件dgv设为public
按"+"实例化新窗口时,将当前的主窗口传进去
如:
childForm child = new childForm(this);
child.show();
childForm为新弹出来的窗体,this为当前打开的主窗体
新窗体中的构造方法改下
private MainForm main=null;
public childForm(MainForm form)
{
this.main = form;
}
之后通过main.dgv
操作
wartim 2008-10-10
  • 打赏
  • 举报
回复
Form2 form2 = new Form2();
form2.ShowDialog(this);
wartim 2008-10-10
  • 打赏
  • 举报
回复
Form2 form2 = new Form2();
form2.ShowDialog(this);
wartim 2008-10-10
  • 打赏
  • 举报
回复
太好了。同一段代码回答2个人的问题。。。
private void button1_Click(object sender, EventArgs e)
{
this.Owner.Controls["textBox1"].Text = "aaa";
}

netbor 2008-10-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 litgle 的回复:]
出错了:(

"当控件被数据绑定时,无法以编程方式向DataGridView的行集合添加行。"
[/Quote]

可以吧.

DataRow dr = dt.NewRow();
dr["F1"] = null;
dt.Rows.Add(dr);

然后再来个FOR语句向里面加数,我就是这么做的.
zx005 2008-10-10
  • 打赏
  • 举报
回复
那你看看能不能操作DataTable来改变

110,568

社区成员

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

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

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