C 視窗程式設計(二)

2021-06-04 15:05:54 字數 2774 閱讀 1779

乙個應用按鈕控制項的程式,包括按鈕的建立,事件處理。

示例**如下:(單擊按鈕時,會彈出乙個訊息提示框)

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