单击一个窗体按钮时触发另一个窗体按钮事件

征服者X 2008-06-03 06:57:09
单击一个窗体按钮时触发另一个窗体按钮事件?
...全文
796 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2010-12-03
  • 打赏
  • 举报
回复
frm2.Button2.PerClick();就
征服者X 2008-06-13
  • 打赏
  • 举报
回复
点击按钮出发另一个窗体的按钮事件
声明一个委托

public delegate void guolv();

实例化委托的实例
public guolv gl;

在当前按钮的click事件中触发委托的实例
private void btnok_Click(object sender, EventArgs e)
{
gl();
}

另一个窗体中的方法
private void glba()
{
this.button1_Click(this.button1, new EventArgs());
}

在另一个窗体提前出发中加委托
private void button2_Click(object sender, EventArgs e)
{
shujudaochu sd = new shujudaochu();
sd.gl+=new shujudaochu.guolv(glba);
sd.Show();
}

这是我遇到的这个问题的解决方法及代码!
谢谢楼上各位的指导。
Deathsign 2008-06-04
  • 打赏
  • 举报
回复
假设2个Form
Form1
Form2


在Form1里面
Form2 frm2=new Form2();
然后
frm2.Show();

把Form2里面的按钮Button2改为public后

在Form1 Button_Click里面

frm2.Button2.PerXXClick();就行了

函数我忘了 有智能提示的
fir521522 2008-06-04
  • 打赏
  • 举报
回复
cainiao:

应该把另一个窗体和它的按钮设为公有的,
接下来应该可以实现一楼所说的互用一事件了。。
征服者X 2008-06-04
  • 打赏
  • 举报
回复
能否贴点代码?
czk598478 2008-06-04
  • 打赏
  • 举报
回复
学习,顺便帮你顶
jht305 2008-06-04
  • 打赏
  • 举报
回复
路过,学习~
征服者X 2008-06-04
  • 打赏
  • 举报
回复
比如说第一个窗体是FormA,第二个窗体时FormB。
FormA是一个数据显示窗体,FormB是一个过滤条件窗体。
当点击FormB上的确定按钮后 FormA窗体上的数据根据条件改变

前面几种方法,如果在FormA窗体的 按钮下写一个message消息没问题?
但是如果是数据改变代码就报错了
DataView rowfilter = new DataView(dt);
if (shujudaochu.sql.ToString().Trim() == "")
{
dataGridView1.DataSource = dt;
}
else
{
rowfilter.RowFilter = "" + shujudaochu.sql + "";
rowfilter.RowStateFilter = DataViewRowState.OriginalRows;
DataTable dtt = rowfilter.ToTable();
dataGridView1.DataSource = dt;
dataGridView2.DataSource = dtt;
} 未将对象引用设置到对象的实例
wuhaiwuya 2008-06-04
  • 打赏
  • 举报
回复
事件 在form A 定义事件 单击按钮是 触发事件 FormB 注册事件

such as :
FormA
private EventHandler myevent

button1_click
if (myevent != null)
{
myevebt(sender,e);//e 你也可以继承eventargs 基类
}

FormB

private FormA f1;

f1.myevent +=new EventHandler(aaa_click);

private void aaa_click(object sender,eventargs e)
{}
baihe_591 2008-06-04
  • 打赏
  • 举报
回复
换个思路.

在form2中:

void button1_Click(object sender, EventAgrs e)
{
btnEvent( );

}
Public void btnEvent()
{
........

}


那么在form1中:
void button1_Click(object sender, EventAgrs e)
{
Form2 frm=new Form2();
frm.btnEvent( );

}

hkdeaccp 2008-06-04
  • 打赏
  • 举报
回复
委托!
neok 2008-06-04
  • 打赏
  • 举报
回复
同意7楼的,主要是Form2中的Button按钮要是public属性

Form1 代码

public Form1()
{
InitializeComponent();
}

Form2 frm2;
private void Form1_Load(object sender, EventArgs e)
{
frm2 = new Form2();
}

private void button1_Click(object sender, EventArgs e)
{
frm2.button1_Click(sender, e);
}


Form2代码

public System.Windows.Forms.Button button1;

public void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Form2.Button.Click", this.Text);
}
soonssa 2008-06-03
  • 打赏
  • 举报
回复
通过事件来传递吧
jryu2k5 2008-06-03
  • 打赏
  • 举报
回复
将需要的操作提取出来放在一个public的函数里面,两个按钮都调用它
kkun_3yue3 2008-06-03
  • 打赏
  • 举报
回复
sorry....么看清题目
kkun_3yue3 2008-06-03
  • 打赏
  • 举报
回复
Button1_Click事件里写
Button2_Click(sender,e);

或者,两个事件都使用一个方法注册下

110,534

社区成员

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

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

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