加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 设计时的火灾事件?

发布时间:2020-12-16 01:51:24 所属栏目:百科 来源:网络整理
导读:我目前正在设计一个自定义选项卡控件类,它派生自System. Windows.Forms.Control. 问题是在设计时没有(至少没有我测试过的,包括鼠标和键盘事件)事件被触发. 这对我来说是个问题,因为无法在设计器中的标签页之间切换对用户来说非常不方便.我一直在做一些研究,
我目前正在设计一个自定义选项卡控件类,它派生自System. Windows.Forms.Control.
问题是在设计时没有(至少没有我测试过的,包括鼠标和键盘事件)事件被触发.
这对我来说是个问题,因为无法在设计器中的标签页之间切换对用户来说非常不方便.我一直在做一些研究,似乎我想要完成的是不可能的.这让我很奇怪,因为.NET框架附带的许多控件都支持设计时交互.以TabControl为例.您可以在设计时切换页面.

所以我的问题是:有没有办法让鼠标和键盘事件在设计时工作?

另外,抱歉我没有提供代码段.但我认为这不是必要的.对于那些想要试用它的人来说,这是一个我快速创建的简单按钮类:

public class MyButton : Control
{

    private bool hover = false;

    protected override void OnPaint(PaintEventArgs e)
    {
        base.OnPaint(e);

        Color color = hover ? Color.DarkBlue : Color.Blue;
        e.Graphics.FillRectangle(new SolidBrush(color),DisplayRectangle);
        e.Graphics.DrawRectangle(Pens.Black,new Rectangle(DisplayRectangle.Location,new Size(DisplayRectangle.Width - 1,DisplayRectangle.Height - 1)));
    }

    protected override void OnMouseEnter(EventArgs e)
    {
        base.OnMouseEnter(e);

        hover = true;
        Refresh();
    }

    protected override void OnMouseLeave(EventArgs e)
    {
        base.OnMouseLeave(e);

        hover = false;
        Refresh();
    }

}

您将看到按钮的颜色在设计时不会改变.

解决方法

以下应该有效:

>创建Windows窗体项目以托管自定义控件
>创建控件库项目
>将属性添加到自定义控件
>将自定义控件添加到主机表单
>设置项目以进行设计时调试
>在设计时调试自定义控件

更多信息,请点击http://msdn.microsoft.com/en-us/library/5ytx0z24(v=vs.90).aspx

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读