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

首頁 > 開發 > 綜合 > 正文

制作自己的分隔線控件(LineH、LineV)

2024-07-21 02:24:14
字體:
來源:轉載
供稿:網友
以前用delphi開發軟件的時候,如果需要在界面上放置一個分隔線,其自帶的tbevel可以很好地滿足這一要求。現在轉到了.net平臺,竟找不到對應的控件(畢竟每次在paint事件中畫太麻煩)。而如果用panel、groupbox、label來間接實現,效果不夠理想,并且感覺怪怪的。因此決定自己實現一個分隔線控件,效果如下圖所示:








  在這里我只將核心代碼貼出來,關于創建自定義控件的相關知識可參考msdn:

ms-help://ms.vscc.2003/ms.msdnqtr.2003feb.2052/vbcon/html/vbconcontrolcreation.htm



/// <summary>

/// 水平分隔線

/// </summary>

[

toolboxbitmap(typeof(lineh), "res.lineh.ico"),

designer(typeof(linehdesigner))

]

public class lineh : system.windows.forms.usercontrol

{
//... ...



private void lineh_paint(object sender, system.windows.forms.painteventargs e)

{

graphics g = e.graphics;

rectangle r = this.clientrectangle;



pen darkpen = new pen(systemcolors.controldark, 1);

pen lightpen = new pen(color.white);



//用暗色調處理上邊緣

g.drawline(darkpen, r.left, r.top, r.right, r.top);



//用亮色調處理下邊緣

g.drawline(lightpen, r.left, r.top + 1, r.right, r.top + 1);

}


//... ...

}




/// <summary>

/// 垂直分隔線

/// </summary>

[

toolboxbitmap(typeof(linev), "res.linev.ico"),

designer(typeof(linevdesigner))

]

public class linev : system.windows.forms.usercontrol

{
//... ...



private void linev_paint(object sender, system.windows.forms.painteventargs e)

{

graphics g = e.graphics;

rectangle r = this.clientrectangle;



pen darkpen = new pen(systemcolors.controldark, 1);

pen lightpen = new pen(color.white);



//用暗色調處理左邊緣

g.drawline(darkpen, r.left, r.top, r.left, r.bottom);



//用亮色調處理右邊緣
g.drawline(lightpen, r.left + 1, r.top, r.left + 1, r.bottom);

}

//... ...

}





欲完全實現上圖所示效果,可參閱http://blog.csdn.net/doubon/archive/2005/01/18/258314.aspx。





發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 肃宁县| 凌海市| 张家川| 尼勒克县| 鹿泉市| 安国市| 凤冈县| 马公市| 介休市| 赤壁市| 凉山| 玉屏| 新野县| 嵊泗县| 绩溪县| 德清县| 岳西县| 庆城县| 安庆市| 河曲县| 仁布县| 四平市| 冷水江市| 宁化县| 贵州省| 通道| 收藏| 乳源| 六盘水市| 搜索| 仪陇县| 兴文县| 黑龙江省| 溧阳市| 徐州市| 巴青县| 柳林县| 郓城县| 宁南县| 高阳县| 潼关县|