c# - C# CustomButton 不起作用 CancelButton 和 AcceptButton
问题描述
我制作了自己的自定义按钮。
public partial class CustomButton : Button
{
public Image Background_Hover { get; set; }
public Image Background_Down { get; set; }
public Image Background_Normal;
public Image Image_Hover { get; set; }
public Image Image_Down { get; set; }
public Image Image_Normal;
public Color ForeColor_Hover { get; set; }
public Color ForeColor_Down { get; set; }
public Color ForeColor_Normal;
public CustomButton()
{
InitializeComponent();
this.SetStyle(ControlStyles.Selectable, false);
}
protected override void OnMouseEnter(System.EventArgs e)
{
Background_Normal = base.BackgroundImage;
if (Background_Hover != null) base.BackgroundImage = Background_Hover;
Image_Normal = base.Image;
if (Image_Hover != null) base.Image = Image_Hover;
ForeColor_Normal = base.ForeColor;
if (ForeColor_Hover != Color.Empty) base.ForeColor = ForeColor_Hover;
base.OnMouseEnter(e);
}
protected override void OnMouseLeave(System.EventArgs e)
{
if (Background_Hover != null) base.BackgroundImage = Background_Normal;
if (Image_Hover != null) base.Image = Image_Normal;
if (ForeColor_Hover != Color.Empty) base.ForeColor = ForeColor_Normal;
base.OnMouseLeave(e);
}
protected override void OnMouseDown(MouseEventArgs e)
{
if (Background_Down != null) base.BackgroundImage = Background_Down;
if (Image_Down != null) base.Image = Image_Down;
if (ForeColor_Down != Color.Empty) base.ForeColor = ForeColor_Down;
base.OnMouseDown(e);
}
protected override void OnMouseUp(MouseEventArgs e)
{
if (Background_Hover != null) base.BackgroundImage = Background_Hover;
if (Image_Hover != null) base.Image = Image_Hover;
if (ForeColor_Hover != Color.Empty) base.ForeColor = ForeColor_Hover;
base.OnMouseUp(e);
}
}
我制作了登录表单,所以我希望在用户输入 Enter 或 ESC 时关闭登录表单。
所以我添加了 CustomButton 并在登录表单 AcceptButton 和 Cancel Button 属性上分配了 CustomButton 。
但是当我输入 Enter 或 ESC 时,它不起作用,甚至点击事件也没有发生。
我不知道为什么它不起作用。
因为我让CustomButton继承了System.Windows.Forms.Button。
我认为它像 System.Windows.Forms.Button 一样工作,但事实并非如此。
我怎么解决这个问题?
解决方案
推荐阅读
- javascript - 打开开发工具是否触发了事件?
- r - Plotly R:创建分为类别的散点图
- spring-boot - 即使在 Spring Security 中禁用了会话,谷歌应用引擎也会检测到会话管理
- python-3.x - 只读 .txt 文件的 4 个首字母 - Python3
- android - 导航组件:使用 uri 的深层链接,具体取决于 buildType
- ubuntu - 如何在 pam_exec 中获取 SSH 身份验证使用的方法?
- javascript - 单击后获取单击元素的问题
- python - Matplotlib 底图 drawcoastlines() 也画一条直线
- flutter - 从 Dart 中的字符串中删除特定字符
- firebase - 如何向主题发送通知