一个很棘手的问题,各位帮帮忙,有分的哦

pxg76 2003-08-19 08:41:23
在设计状态下怎样触发自定义控件的单击事件,在线等,老板让做的,急啊
...全文
40 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qqq123 2003-08-20
  • 打赏
  • 举报
回复
public class ControlPrier
{
#region <<Ear>>
private class Ear:NativeWindow
{
private ControlPrier _owner;

public Ear(ControlPrier owner)
{
if(owner==null) throw new Exception();
this._owner=owner;
}
protected override void WndProc(ref Message m)
{
this._owner.PreMsgProc(ref m);
base.WndProc (ref m);
this._owner.PostMsgProc(ref m);
}
}
#endregion

private Ear _ear=null;
public ControlPrier()
{
this._ear=new Ear(this);
}
public void Entry(Control ctl)
{
this._ear.AssignHandle(ctl.Handle);
}
public void Quit()
{
this._ear.ReleaseHandle();
}
private IntPtr Handle
{
get{ return this._ear.Handle;}
}

protected virtual void PreMsgProc(ref Message m)
{
//.....
}
protected virtual void PostMsgProc(ref Message m)
{
//.....
}
}
//---------------------------
用这个类应当可以接到消息,但是要自己写消息处理和事件出发机制。
pxg76 2003-08-19
  • 打赏
  • 举报
回复
谢谢qqq123,但有什么变通得办法吗,我试过用委托,但找不到怎样在单击试触发事件
qqq123 2003-08-19
  • 打赏
  • 举报
回复
在设计状态下Control会封住大多数Mouse 和 Keyboard 消息,所以没办法得到与这些消息相关的事件。
pxg76 2003-08-19
  • 打赏
  • 举报
回复
老板要得很急,如果定义单击事件
target.Click += new EventHander(myClick);
这样定义得话只是在运行时起作用,在设计状态下不起作用。有办法吗?
zlcoolzl 2003-08-19
  • 打赏
  • 举报
回复
强烈关注……
pxg76 2003-08-19
  • 打赏
  • 举报
回复
老兄有办法吗?我试了很多都没用,在运行状态下都没问题
rqxiang 2003-08-19
  • 打赏
  • 举报
回复
up

110,533

社区成员

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

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

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