乙個應用按鈕控制項的程式,包括按鈕的建立,事件處理。
示例**如下:(單擊按鈕時,會彈出乙個訊息提示框)
using system.windows.forms;
using system;
class form1 : form
public void initializecomponent()
//按鈕單擊事件處理函式
private void button1_click(object sender, eventargs e) }
class program}
form類代表視窗,那麼button就是按鈕類。其它我就不講了,只說一下事件處理是怎麼回事。
看這一句:button1.click+=new eventhandler(button1_click);
click是button類裡的乙個委託變數,這個委託的定義是這樣的:
public delegate void eventhandler(object sender, eventargs e);
如果對委託有什麼不了解的話,可以參考:
看乙個簡單的關於事件的示例吧:
public delegate void eventhandler(object sender,eventargs e);
public class button}
上面的click(this,e);第乙個引數傳的是this,它對應的是object,這個是所有類的基類,如果你自定義類的時候,沒有從哪個類派生,那麼預設就是從object派生出的類。那麼關於事件處理函式:void button1_click(object sender, eventargs e)
第乙個引數是有得解釋了,它可以轉換為button型別。看下面**:
void button1_click(object sender,eventargs e)
這樣就可以根據sender來判斷具體是哪個控制項的事件了。
事件定義的委託,變數前有乙個event關鍵字,這個是事件的標誌,click變數前也有,用event修飾後,click不能直接賦值,只能用+=進行賦值。這個用法具體可以參考c#語法相關(三)裡面的多播委託。
好了,這些基礎都有個大概的了解了,接下來就學習各控制項的基本應用吧,上面的例子中**都是手打的。這次,我們建乙個「windows 窗體應用程式」,一些繁雜的**就讓編譯器幫我們生成吧。
組合框
新建乙個專案,專案型別是「windows 窗體應用程式」,確定後進入視窗編輯區,往視窗裡拖乙個組合框控制項(name:combobox1),
然後再拖乙個按鈕控制項。
在initializecomponent函式中給組合框新增項文字:
combobox1.items.add("1111111");
combobox1.items.add("2222222");
combobox1.items.add("3333333");
combobox1.items.add("4444444");
然後雙擊「按鈕」控制項,新增單擊事件處理,**如下:
private void button1_click(object sender, eventargs e)
checkbox核取方塊控制項
checkbox類裡有乙個bool型別變數checked,用於判斷是否選中選框。
示例**:
string str="選中的是:\n";
if (checkbox1.checked)
str += checkbox1.text;
if (checkbox2.checked)
messagebox.show(str);
textbox文字框和picturebox控制項,加openfiledialog檔案開啟對話方塊
這裡做乙個簡單的開啟的應用程式,用picturebox控制項顯示,openfiledialog對話方塊來瀏覽,
textbox裡顯示選擇的路徑。
picturebox類裡有個屬性變數image,型別是system.drawing.image,這個變數決定要picturebox控制項要顯示的,類似於c++的「控制代碼」。
image類裡有個fromfile函式,可以載入磁碟上的檔案。
還是直接看**吧,每一句關鍵**都有了注釋。
先給視窗新增textbox,picturebox,button控制項。其中button按鈕單擊事件處理函式的**是:
private void button1_click_1(object sender, eventargs e)}
openfiledialog對話方塊類要想有更進一步的了解的話,可以去msdn查一下,這裡不說明了,好了,我只講關鍵部分,其它一些收尾工作,自己來做吧。
程式執行圖:
另:picturebox類裡有個sizemode屬性變數,這個指定顯示模式,通常情況下,當大小超過了控制項時,就不會顯示出來。
如果把sizemode指定值為stretchimage,就可以放大,縮小,反正是跟控制項大小一致。
也就是this.picturebox1.sizemode = system.windows.forms.pictureboxsizemode.stretchimage;
pictureboxsizemode是乙個列舉型別,詳情參考msdn
C 網路程式設計(二)
1.c 下客戶端的實現 using system using system.collections.generic using system.linq using system.text using system.net using system.net.sockets using system.i...
C 非同步程式設計二
上一非同步程式設計的部落格還是在9月份的,最近事情也比較多,煩惱事情乙個接著乙個,乙個人的週末除了無聊就剩無聊了,也只有寫寫部落格來打發下這無聊的時光。原本想著盡快把非同步程式設計這塊總結一下,之前把委託非同步算是總結了下,這次主要是想著把async await總結一下。在學習async await...
C 非同步程式設計二
上一非同步程式設計的部落格還是在9月份的,最近事情也比較多,煩惱事情乙個接著乙個,乙個人的週末除了無聊就剩無聊了,也只有寫寫部落格來打發下這無聊的時光。原本想著盡快把非同步程式設計這塊總結一下,之前把委託非同步算是總結了下,這次主要是想著把async await總結一下。在學習async await...