国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

用戶控件的設計要點System.Windows.Forms.UserControl

2019-11-14 16:20:27
字體:
來源:轉載
供稿:網友

用戶控件的設計要點

最近的項目中有一個瀑布圖(彩圖)的功能,就是把空間和時間上的點量值以圖的形式呈現出來,如下圖:

X坐標為空間,水平方向的一個像素代表一個空間單位(例如50米)

Y坐標為時間,垂直方向的一個像素代表一個時間單位(例如1秒)

由于沒有現成的彩圖控件可以使用,于是就自己嘗試的寫了一個用戶控件,這篇博客就是講述了如何編寫一個類似的用戶控件。

 

該用戶控件使用了自繪制的功能,其實要實現自繪制還是比較容易的,按以下的幾個步驟即可:

1,創建一個繼承自 System.Windows.Forms.UserControl 的類。右擊解決方案項目,選擇“添加” “用戶控件”,輸入控件名稱。

public partial class ColorControl : UserControl

2,設置控件 DoubleBuffered 為true,對控件進行雙緩存處理,減少繪制控件時的閃爍。

3,在構造函數里添加如下代碼:

設置 Control 類的 ResizeRedraw 為true,取消了在調整控件大小時的拖尾現象(之前繪制的內容沒有擦除)

        //        // 摘要:        //     獲取或設置一個值,該值指示控件在調整大小時是否重繪自己。        //        // 返回結果:        //     如果控件在調整大小時重繪自己,則為 true;否則為 false。        PRotected bool ResizeRedraw { get; set; }
        public ColorControl()        {            InitializeComponent();            ResizeRedraw = true;        }

4,重寫控件的 OnPaint 方法

        protected override void OnPaint(PaintEventArgs e)        {            base.OnPaint(e);            // 開始繪制自己的代碼即可            Draw(e.Graphics, this.ClientRectangle);        }        

具體的 Draw 方法如何寫就看項目對控件的需求了。下面是個簡單的Draw方法截圖:

 

當然在制作圖表控件還是有很多東西需要考慮的,最基本的繪制坐標系,繪制標題,繪制主內容區域,還要提供一些事件和方法供客戶類使用。這后面的東西可以參考開源的 ZedGraph。

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 定远县| 吴桥县| 安阳市| 霞浦县| 霍城县| 凌海市| 永丰县| 东辽县| 高邮市| 台南县| 盐源县| 麻江县| 海原县| 崇礼县| 永吉县| 隆尧县| 兴文县| 霸州市| 修文县| 揭西县| 高淳县| 藁城市| 陇西县| 台中县| 恩平市| 辽宁省| 渭源县| 镇安县| 四川省| 长阳| 连云港市| 九龙县| 呼和浩特市| 绵竹市| 中山市| 张家港市| 思茅市| 禹州市| 贵南县| 扶余县| 安仁县|