标题:如何触发内置的事件发生?
只看楼主
athenalux
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河北石家庄
等 级:小飞侠
威 望:8
帖 子:975
专家分:2514
注 册:2008-11-26
结帖率:100%
已结贴  问题点数:10 回复次数:2 
如何触发内置的事件发生?
在winform中有一个panel控件,我想在panel控件的mouseleave事件处理函中,触发mouseup事件,如何做??
private void panel1_MouseLeave(object sender, EventArgs e)
        {
            this.panel1.MouseUp(this.panel1, e);这样写提示“mouseup必须在+=或-=符号的左边”
        }
究竟该怎么做呢?
搜索更多相关主题的帖子: 触发 
2010-01-28 19:43
baikil
Rank: 10Rank: 10Rank: 10
来 自:X星球
等 级:青峰侠
威 望:4
帖 子:282
专家分:1580
注 册:2009-7-20
得分:7 
1.可以异步调用mouesUp委托来做啊!
 private void panel1_MouseLeave(object sender, EventArgs e)
{
    MouseEventHandler meh=new MouseEventHandler(panel1_MouseUp);
    BeginInvoke(meh, new object[] {null,new MouseEventArgs(MouseButtons.None,1,10,10,0)});//MouseUp的中参数e与MouseLeave中的参数e不同的,你是不可以传递的;
}

2.你可以自己重写一个自己Panel控件,在重写
protected override void OnMouseLeave(EventArgs e)
{
    base.OnMouseLeave(e);
     base.OnMouseUp(new MouseEventArgs(...))
}
中可以调用OnMouseUp事件.

不知你的用意何在,MouseEventArgs要自己或设定

自创QQ群64885635,方便C#学习交流.希望各项工作路好学都好入!
2010-01-29 09:41
athenalux
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河北石家庄
等 级:小飞侠
威 望:8
帖 子:975
专家分:2514
注 册:2008-11-26
得分:0 
我是想这样,mouseleave事件发生时,能够发生mouseup事件,通常mouseup事件是由用户鼠标的弹起来触发的,我想在mouseleave事件发生的一瞬间,模拟出mouseup(鼠标弹起)这个事件。
用户的自定义事件可以这样触发:
public event mydelegate myevent;
myevent(this,e);
为什么系统内定的事件不能这样??

[ 本帖最后由 athenalux 于 2010-1-29 12:22 编辑 ]

QQ:81704464
2010-01-29 12:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-296676-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.370513 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved