回答
我创建了一个示例来演示如何创建自定义控件。
创建一个UserControl并给出名称示例并将以下代码放入.cs文件中。
[DefaultEvent("Click")]
public partial class Sample : UserControl
{
private string _text;
[Browsable(true)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
public override string Text
{
get
{
return _text;
}
set
{
_text = value;
}
}
private bool _mouseDown = false;
private bool _mouseHover = false;
private bool _invalidateRequired = true;
public Sample()
{
InitializeComponent();
}
protected override void OnMouseDown(MouseEventArgs e)
{
base.OnMouseDown(e);
_mouseDown = true;
_invalidateRequired = true;
this.Invalidate();
}
protected override void OnMouseUp(MouseEventArgs e)
{
base.OnMouseUp(e);
_mouseDown = false;
_invalidateRequired = true;
this.Invalidate();
}
protected override void OnMouseMove(MouseEventArgs e)
{
base.OnMouseMove(e);
_mouseHover = true;
if (_invalidateRequired)
{
this.Invalidate();
_invalidateRequired = false;
}
}
protected override void OnMouseLeave(EventArgs e)
{
base.OnMouseLeave(e);
_mouseHover = false;
this.Invalidate();
_invalidateRequired = true;
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Rectangle r = new Rectangle(0, 0, this.ClientRectangle.Width - 1, this.ClientRectangle.Height - 1);
Color bg = Color.White;
Color fr = Color.Gray;
Color br = Color.FromArgb(173, 178, 173);
if (_mouseDown)
{
bg = Color.FromArgb(24, 162, 231);
fr = Color.White;
}
if (_mouseHover)
br = Color.FromArgb(24, 162, 231);
e.Graphics.FillRectangle(new SolidBrush(bg), r);
e.Graphics.DrawRectangle(new Pen(br, 3), r);
StringFormat sf = new StringFormat();
sf.LineAlignment = StringAlignment.Center;
sf.Alignment = StringAlignment.Center;
e.Graphics.DrawString(Text, this.Font, new SolidBrush(fr), r, sf);
}
}
如何处理此类中的InitializeComponent()? (名称'InitializeComponent'在当前上下文中不存在) – user3328870
如果添加了用户控件,则不需要创建InitializeComponent,因为它已在designer.cs文件中定义。确保你选择了UserControl而不是一个类。 – Shell
为什么将Button FlatStyle从标准更改为平面时,默认颜色更改为灰色? – user3328870
- 1. CSS:悬停时更改按钮外观
- 2. 单击时更改按钮
- 3. 禁用winform按钮上的悬停行为
- 4. WPF - 更改按钮悬停上的backgroundcolor
- 5. 更改悬停按钮上的图像
- 6. 悬停悬停时的按钮描述?
- 7. 单击按钮时的语言更改
- 8. 单击时更改按钮的值
- 9. 单击时更改按钮的内容?
- 10. 当你按Ctrl +单击WinForm中的按钮时运行?
- 11. 更改悬停以单击菜单
- 12. 单选按钮悬停时无法更改背景图片
- 13. 如何在悬停时点击按钮
- 14. 更改按钮悬停颜色在VB.net
- 15. 更改悬停/活动按钮
- 16. 如何更改悬停按钮?
- 17. CSS更改按钮悬停颜色
- 18. 如何在悬停后更改按钮的颜色并单击xaml
- 19. flex,当鼠标悬停在按钮上时,更改鼠标悬停/跳出时的按钮图像
- 20. 更改颜色的按钮和我上课悬停
- 21. 使用模板更改悬停/点击按钮背景图片
- 22. 在悬停或点击更改按钮图像
- 23. 按钮单击更改innerHTML
- 24. 如何更改鼠标悬停时按钮的背景?
- 25. 如何在悬停时更改按钮的颜色?
- 26. 当按下按钮时禁用iOS的行为:悬停状态
- 27. 单击按钮时更改属性Jquery
- 28. 单击按钮时更改Tkinter屏幕?
- 29. 单击按钮时更改图片
- 30. 更改状态时单击按钮
创建自定义的控制。 – Shell
请您详细说明一下吗? – user3328870
你使用什么编程语言? – Shell