C#跨窗体操作

t13140019421 2011-04-22 10:07:29
如图 C#WINFORM

上面的Form1是容器,下面的Form2里有个dgv,我想点击上面的 向前 、向后 等按钮 Form2里的选中行可以发生改变。
请问该怎么做呀 ??
...全文
408 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
wtj2832 2011-04-22
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 tsapi 的回复:]

C# code
直接用委托事件就可以了:

首先Bind1方法为无返回类型,那就用无返回类型的delegate
1、子窗体class前定义

public delegate void Callback(string strexchange);
// 后再子窗体中添加如下代码
public event Callback Callevent=null;

//放在btnOK_Clic……
[/Quote]
+1
liangzhl 2011-04-22
  • 打赏
  • 举报
回复
楼上的都说了。。。。。
丁心驿 2011-04-22
  • 打赏
  • 举报
回复
也遇到过相关的问题
Zhang987536341 2011-04-22
  • 打赏
  • 举报
回复
from1 f = new from2();
xiaohuang658 2011-04-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 t13140019421 的回复:]
引用 3 楼 hhc123 的回复:

窗体间的传值
委托,事件。

能不能给我具体点 。谢谢啊
[/Quote]

额、典型的用委托就可以解决的,不懂的话,我建议百度查,资料很多的
itrefer 2011-04-22
  • 打赏
  • 举报
回复
其实改下 第二个窗体的构造方法 是可以传 Datagridview类型的对象过去的

直接在第二个窗体里进行操作了
睡神在睡觉 2011-04-22
  • 打赏
  • 举报
回复
首选:委托,事件
如果应用地方比较多。。。。。可以考虑Message
se7en 2011-04-22
  • 打赏
  • 举报
回复
建议你可以跨线程操作 ,比较靠谱
Daqing 2011-04-22
  • 打赏
  • 举报
回复
直接用委托事件就可以了:

首先Bind1方法为无返回类型,那就用无返回类型的delegate
1、子窗体class前定义

public delegate void Callback(string strexchange);
// 后再子窗体中添加如下代码
public event Callback Callevent=null;

//放在btnOK_Click事件中
Callevent(textbox1.text);//子窗体的this.textbox1

2.主窗体
调用委托事件
子窗体 chil = new 子窗体();
chil.Show();
chil.Callevent += new Callback(chil_Callevent);

void chil_Callevent(object sender)
{
this.textbox1.text=sender;//主窗体的this.textbox1
}
Daqing 2011-04-22
  • 打赏
  • 举报
回复
构造函数不理想,整个form都实例化一次,太耗资源。用委托
ycproc 2011-04-22
  • 打赏
  • 举报
回复
写构造函数

然后用委托实现

kavasszhu 2011-04-22
  • 打赏
  • 举报
回复
在Form1中声明一个事件,然后再Form2注册这个事件,注册事件的方法就是你要Form2选中行改变的方法
public partial class Form1 : Form
{
public delegate void ChangeEventHandler(bool flag);
public event ChangeEventHandler Change;
private void OnChange(object sender, EventArgs e)
{
if(((Button)sender).Text="向前")
{ Change(True);}
else
{Change(false)}
}
}
Form2的代码:
public partial class Form2 : Form
{
Form1 f = new Form1();
public Form2()
{
InitializeComponent();
f.Change+= new Form1.Change(OnChange);
}
private void OnChange(bool flag)
{
.....
}
}
hch126163 2011-04-22
  • 打赏
  • 举报
回复


子窗口一个public 的 方法

主窗口 创建子窗口时。保存一个子窗口的引用。就可以调用子窗口的 public 方法了!!

t13140019421 2011-04-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hhc123 的回复:]

窗体间的传值
委托,事件。
[/Quote]
能不能给我具体点 。谢谢啊
avi9111 2011-04-22
  • 打赏
  • 举报
回复

比较笨的方法

FORM2写个public 方法,行上下
FORM1触发的时候调用
hhc123 2011-04-22
  • 打赏
  • 举报
回复
窗体间的传值
委托,事件。
t13140019421 2011-04-22
  • 打赏
  • 举报
回复
自己顶一下 在线等 。。。
t13140019421 2011-04-22
  • 打赏
  • 举报
回复
自己顶一下 在线等 。。。
PISANAN 2011-04-22
  • 打赏
  • 举报
回复
窗口2实现窗口1的操作接口,
窗口1再创建时保存接口对象,多文档时,在窗体2实体的Actived事件下,改变窗体1的接口对象值,
窗口1按炒作按钮时,调用接口即可。
加载更多回复(3)

110,566

社区成员

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

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

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