回答
我創建了一個示例來演示如何創建自定義控件。
創建一個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