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

c# – 设计时的火灾事件?,第1张

概述我目前正在设计一个自定义选项卡控件类,它派生自System. Windows.Forms.Control. 问题是在设计时没有(至少没有我测试过的,包括鼠标和键盘事件)事件被触发. 这对我来说是个问题,因为无法在设计器中的标签页之间切换对用户来说非常不方便.我一直在做一些研究,似乎我想要完成的是不可能的.这让我很奇怪,因为.NET框架附带的许多控件都支持设计时交互.以TabControl为例.您可 我目前正在设计一个自定义选项卡控件类,它派生自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

总结

以上是内存溢出为你收集整理的c# – 设计时的火灾事件?全部内容,希望文章能够帮你解决c# – 设计时的火灾事件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1217697.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存