c#實現winform自定義半透明遮罩層
在網頁中通過div+css實現半透明效果不難,今天我們看看一種在winfrom中實現的方法:
效果圖如下,正常時:
顯示遮罩層時:
自定義遮罩層控制項的原始碼如下:
using system;opaquecommand的方法:showopaquelayer(顯示遮罩層)和hideopaquelayer(隱藏遮罩層)using system.drawing;
using system.windows.forms;
using system.componentmodel;
namespace myopaquelayer
public myopaquelayer(int alpha, bool isshowloadingimage)
}protected override void dispose(bool disposing)
}base.dispose(disposing);
}/// /// 自定義繪製窗體
///
///
protected override void onpaint(system.windows.forms.painteventargs e)
else
base.onpaint(e);
vlblcontrolwidth = this.size.width;
vlblcontrolheight = this.size.height;
e.graphics.drawrectangle(labelborderpen, 0, 0, vlblcontrolwidth, vlblcontrolheight);
e.graphics.fillrectangle(labelbackcolorbrush, 0, 0, vlblcontrolwidth, vlblcontrolheight);
}protected override createparams createparams }/*
* [category("myopaquelayer"), description("是否使用透明,預設為true")]
* 一般用於說明你自定義控制項的屬性(property)。
* category用於說明該屬性屬於哪個分類,description自然就是該屬性的含**釋。
*/[category("myopaquelayer"), description("是否使用透明,預設為true")]
public bool transparentbg
set}
[category("myopaquelayer"), description("設定透明度")]
public int alpha
set}
}}
using system;using system.windows.forms;
namespace 載入中
this.m_opaquelayer.enabled = true;
this.m_opaquelayer.visible = true;
}catch
}/// /// 隱藏遮罩層
///
public void hideopaquelayer()
}catch(exception ex)}}
}
C 自定義Winform無邊框窗體
在實際專案中,winform窗體或者控制項不能滿足要求,所以就需要自己設計窗體等,當然設計介面可以用的東西很多,例如wpf 或者一些第三方的庫等。本例中將採用winform設計乙個扁平美觀的窗體。需要的可以參考 c 自定義button按鈕控制項 窗體效果 是否允許最大化 3 4private boo...
WinForm 建立自定義控制項
雖然vs為我們提供了很多控制項可以使用,但有時候這些控制項仍然不能滿足我們的要求,比如我們要對部分控制項進行一些個性化的定製,例如美化控制項,這時候就需要自己繪製控制項,或是在原有控制項的基礎上進行修改 自定義控制項分為三種 1 組合控制項 compositecontrols 在原有控制項的基礎上根...
WinForm自定義Loading控制項
在vs2008下封裝winform自定義loading控制項。autocircle.cs封裝了旋轉的圓形,直接在裡面新增label的話,計算圓形扇面的方法有點小複雜,所以在loadingpanel.cs將autocircle和label封裝在一起。該控制項中提供了當loadingpanel狀態變化時...