本人一直從事安防行業的程式設計,從vb到vb.net,從vc到qt,從c#桌面開發到c#嵌入式開發,輾轉多門語言,這幾天靜下心來思考,將很多專案中經常用到的處理封裝起來,以備後用,特別是近期接了幾個私活,如果用已經封裝好的常用的處理來開發的話,估計速度會加快很多,效率也會提高不少,特意準備花幾個星期時間,將常用處理以及自定義控制項集合到乙個專案。
windows自帶的訊息框比較醜,特別是轉到win7下更加,專案中用到的訊息框非常多,基本上有提示資訊、錯誤資訊、詢問資訊這三種,從美觀角度,messagebox.show()這個方法出來的訊息框有點不盡人意,於是自己寫了乙個,個人覺得舒服些。
說明:以下命名忽略了大小寫。
自定義資訊框
系統資訊框
自定義詢問框
系統詢問框
步驟1:
新建窗體frmmessagebox,放置乙個picturebox(picico)控制項和乙個label(labinfo)控制項以及兩個panel控制項,其中panel1裡面放乙個按鈕,命名為btnok,文text屬性為確定(&o),dialogresult屬性設定為ok,這樣的話結束對話方塊之後會返回dialogresult.ok,這裡為了能夠自適應訊息長度而改變按鈕寬度和對話方塊寬度,特意要放置兩個panel,另外乙個panel放置兩個按鈕,乙個是,乙個否。
這樣的話相信你已經知道這些控制項的用處了吧,框用來顯示對應,資訊框的話就是乙個大勾,詢問框的話就是乙個大問號,提前將資源新增到專案中,建議檔案命名最好info.png/error.png這樣的,到時候取資源的話好找,label用來顯示訊息。
步驟2:
定義列舉型別,這裡定義了三種,你也可以自己增加。
public enum messageboxstyle
;步驟3:
重寫建構函式
public
frmmessagebox(messageboxstyle messageboxstyle,
string
msg)
else
if
(messageboxstyle == messageboxstyle.question)
else
if
(messageboxstyle == messageboxstyle.error)
this
.labinfo.text = msg;
sizef size = textrenderer.measuretext(msg,
new
font(
"宋體"
, 15, fontstyle.regular));
int
tempwidth = (
int
)size.width;
if
(tempwidth <= 249)
this
.width = (
int
)size.width + 130;
this
.panel1.width = tempwidth-20;
this
.panel2.width = tempwidth-20;
btnyes.width = tempwidth / 2 - 20;
btnno.width = tempwidth / 2 - 20;
}
自定義ImageLinkButton美化提交按鈕
在提交中,最常用的是button,不過最近想在button前面顯示一張,做起來很麻煩。讓人你可以說使用imagebutton,但是imagebutton的imageurl的image無法多次重用,使用style控制button的背景,在文字過長時,也難以控制項,所以採用下面給出的乙個解決方法 1建立...
qml 自定義訊息框 Qml自定義元件的使用
component是可重用的 封裝的 具有定義良好的介面的qml型別。元件通常由元件檔案定義,即.qml檔案。元件型別本質上允許在qml檔案中內聯定義qml元件,而不是作為單獨的qml檔案。這對於在qml檔案中重用小組件或定義邏輯上屬於檔案中其它qml元件的元件可能很有用。1.在單獨檔案中定義com...
Vue 自定義全域性訊息框元件
訊息彈框元件,預設3秒後自動關閉,可設定info success warning error型別 效果圖 檔案目錄 index.js給vue新增 my message方法,判斷引數,使用 mount 給元件手動掛載引數,然後將元件插入頁面中 import vue from vue import me...