c 自定義訊息框美化步聚

2021-06-20 18:31:46 字數 2261 閱讀 4522

本人一直從事安防行業的程式設計,從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:

重寫建構函式

publicfrmmessagebox(messageboxstyle messageboxstyle,stringmsg)

elseif(messageboxstyle == messageboxstyle.question)

elseif(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...