程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 自繪控件固定高度處理

自繪控件固定高度處理

編輯:.NET實例教程
比如,重寫一個類TextBox的Control,那麼自然也希望它能夠像TextBox一樣,拖到窗體上後,只可改變寬度,不可改變高度,除非修改了Font。對這個功能的實現,其實非常簡單,之所以貼出來,就算是方便大家吧。
例碼:
[Designer(typeof(XControlDesigner))]
public class XControl:Control
{
    ...//具體實現
}

public class XControlDesigner:System.Windows.Forms.Design.ControlDesigner
{
    public XControlDesigner()//2003下需要,2005下可以不加
   {
   }
    public override SelectionRules SelectionRules
    {
     get
     {
      //具體的控制項可以參考SelectionRules的枚舉成員
      SelectionRules rules = SelectionRules.Visible | SelectionRules.Moveable |
       SelectionRules.LeftSizeable | SelectionRules.RightSizeable;
      return rules;
     }
  }
}
那麼這個功能就實現了,而如果用代碼修改控件的高度呢,你會發現還是可以修改的,那麼必須要在控件內重寫一個方法:
protected override void SetBoundsCore(int x, int y, int width, int height, BoundsSpecified specifIEd)
  {
   //計算當前Font下的高度
   int hgt = Font.Height;//對於自定義控件的高度,可能需要具體計算
   base.SetBoundsCore (x, y, width, hgt, specifIEd);
  } 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved