一个button怎么用RaiseEvent触发另一个Button
一个button如何用RaiseEvent触发另一个Button?
例如,我在一个Winform上面有两个按钮控件,Form1的成员button1和button2
那么:
按下第一个按钮弹出一个"abc"。我希望按下第二个按钮的时候,触发第一个按钮的功能。用RaiseEvent可以做到吧? 它的第二个参数应该怎么填呢?
还请指教
------解决方案--------------------
------解决方案--------------------
//
// 摘要:
// 引发适当的鼠标事件。
//
// 参数:
// key:
// 要引发的事件。
//
// e:
// 包含事件数据的 System.Windows.Forms.MouseEventArgs。
[EditorBrowsable(EditorBrowsableState.Advanced)]
protected void RaiseMouseEvent(object key, MouseEventArgs e);
该方法是引发鼠标事件,而button事件不一定是鼠标引发的,所有这个地方你用这个方法去引发button2是考虑不全面的,这个方法要引发鼠标事件。第二个参数是为mouseup、mouserdown、mouseover的鼠标事件提供数据。
------解决方案--------------------
你这是要引发鼠标事件,可button1_click是按钮事件,跟鼠标没什么必然联系啊.
------解决方案--------------------
直接写一个事件处理方法挂到两个button的click事件上去
------解决方案--------------------
两个事件处理方法要调用相同的代码,那么你调用同一个方法就行了。哪有闲功夫纠结“触发事件”?
------解决方案--------------------
RaiseMouseEvent(object key, MouseEventArgs e)这个方法只是触发鼠标事件,但是那个事件去响应就不一定了
var ne = new MouseEventArgs(MouseButtons.Left, 1, 0, 0, 0);
你可以试试将第3、4个参数转化成Button2在父容器中Rect的点的坐标试一试,估计Button2就响应了
------解决方案--------------------
我试了不行
例如,我在一个Winform上面有两个按钮控件,Form1的成员button1和button2
那么:
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("abc");
}
private void button2_Click(object sender, EventArgs e)
{
RaiseMouseEvent(button1, ?);
}
按下第一个按钮弹出一个"abc"。我希望按下第二个按钮的时候,触发第一个按钮的功能。用RaiseEvent可以做到吧? 它的第二个参数应该怎么填呢?
还请指教
------解决方案--------------------
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("abc");
}
private void button2_Click(object sender, EventArgs e)
{
button1_Click(null,null);//这样也是可以调用的
}
------解决方案--------------------
//
// 摘要:
// 引发适当的鼠标事件。
//
// 参数:
// key:
// 要引发的事件。
//
// e:
// 包含事件数据的 System.Windows.Forms.MouseEventArgs。
[EditorBrowsable(EditorBrowsableState.Advanced)]
protected void RaiseMouseEvent(object key, MouseEventArgs e);
该方法是引发鼠标事件,而button事件不一定是鼠标引发的,所有这个地方你用这个方法去引发button2是考虑不全面的,这个方法要引发鼠标事件。第二个参数是为mouseup、mouserdown、mouseover的鼠标事件提供数据。
------解决方案--------------------
你这是要引发鼠标事件,可button1_click是按钮事件,跟鼠标没什么必然联系啊.
------解决方案--------------------
直接写一个事件处理方法挂到两个button的click事件上去
------解决方案--------------------
两个事件处理方法要调用相同的代码,那么你调用同一个方法就行了。哪有闲功夫纠结“触发事件”?
------解决方案--------------------
RaiseMouseEvent(object key, MouseEventArgs e)这个方法只是触发鼠标事件,但是那个事件去响应就不一定了
var ne = new MouseEventArgs(MouseButtons.Left, 1, 0, 0, 0);
你可以试试将第3、4个参数转化成Button2在父容器中Rect的点的坐标试一试,估计Button2就响应了
------解决方案--------------------
我试了不行