[英]Fire events during design-time?
我目前正在設計一個自定義選項卡控件類,它派生自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();
}
}
您將看到按鈕的顏色在設計時不會改變。
這需要一些工作 - 設計時間交互與運行時分開。 這可能有所幫助:
http://www.codeproject.com/Articles/13531/Targeting-Design-Time-Events-of-User-Controls
以下應該有效:
創建Windows窗體項目以托管自定義控件
創建控件庫項目
將屬性添加到自定義控件
將自定義控件添加到主機表單
設置項目以進行設計時調試
在設計時調試自定義控件
更多信息,請訪問http://msdn.microsoft.com/en-us/library/5ytx0z24(v=vs.90).aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.