溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C#中的WinForm框架如何使用

發(fā)布時間:2023-02-27 10:27:27 來源:億速云 閱讀:146 作者:iii 欄目:開發(fā)技術(shù)

這篇“C#中的WinForm框架如何使用”文章的知識點大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“C#中的WinForm框架如何使用”文章吧。

Label和控件屬性

WinForm是一門非常經(jīng)濟(jì)實惠的技術(shù),就是說,可以在短時間內(nèi)學(xué)會,并迅速借此進(jìn)行項目開發(fā)。盡管在很多方面不夠現(xiàn)代,做出來的東西又Low又丑,但絕大多數(shù)的應(yīng)用場景也不需要高端大氣上檔次?;蛟S正是因為這種特點,WinForm在工控領(lǐng)域用得非常多,畢竟可以迅速實現(xiàn)某個小功能。

在VS中創(chuàng)建新項目,模板為C#Windows窗體應(yīng)用,名稱位置啥的隨便選。

創(chuàng)建成功之后,進(jìn)入設(shè)計窗口,可以看到默認(rèn)已經(jīng)生成了一個窗口,如下圖所示,然后就可以愉快地拖控件了,所有控件都在左側(cè)的工具箱里。如果初次打開看不到工具箱,可以試一下快捷鍵Ctrl+Alt+X。

C#中的WinForm框架如何使用

接下來用鼠標(biāo)把工具箱中的Label拖動到窗口Form1上面,同時關(guān)注VS右下角的屬性欄,可以看到Label的屬性,如下圖所示。

C#中的WinForm框架如何使用

當(dāng)然,VS中的很多工具欄都可以拖動到任意位置,上圖就是點擊屬性欄的▼標(biāo)志,選擇浮動,然后拖動到了Form1的右側(cè)。

其中,(Name)為這個Label1控件在程序中的名字,若想在C#中調(diào)用這個標(biāo)簽,就得用到這個名字。

拖動屬性欄的滾動條,在外觀這一標(biāo)題下,有Text屬性,其內(nèi)哦讓那個為label1,這個Text是Label1這個控件所展示出來的字符,將其更改后,窗口上的標(biāo)簽也響應(yīng)發(fā)生變化,就像下圖這樣

C#中的WinForm框架如何使用

外觀這一主題中的參數(shù),在改動之后幾乎都沒有什么嚴(yán)重后果,比如各種配色啥的都可以嘗試一番,這里就不一一演示了。

按鈕和回調(diào)邏輯

接下來從工具箱中拖動一個按鈕,即把Button拖動到Form1上,將其Text屬性改為新Label;將其Name改為btnChangeLabel。

然后雙擊這個按鈕,神奇的一幕發(fā)生了,設(shè)計窗口不見了,取而代之的是我們熟悉的代碼界面,其內(nèi)容為

namespace WinFormsTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnChangeLabel_Click(object sender, EventArgs e)
        {

        }
    }
}

命名空間就不說了,F(xiàn)orm1是一個繼承了Form的類,而其修飾語中,除了老面孔public,又多了一個partial,這個partial表示下面花括號括起來的代碼,可以是Form1的一部分。更具體一點,就是說這個Form1類可以寫在多個文件中。

接下來,public Form1(),是Form1的構(gòu)造函數(shù),無需贅言。

再往下,就是剛剛雙擊按鈕所自動生成的響應(yīng)函數(shù),其中private表示這個函數(shù)是個私有函數(shù),只有在Form1這個類中才能被調(diào)用。函數(shù)名也是自動生成的,包括兩部分,下劃線前面的就是按鈕的名字,下劃線后面Click,表示這個函數(shù)的觸發(fā)條件是單擊。

然后函數(shù)的輸入?yún)?shù)有兩個,分別是object類型的sender,以及EventArgs類型的e,前者表示剛剛點擊的那個按鈕,后者表示點擊的這個動作。

梳理一下就是,點擊按鈕是產(chǎn)生了兩個變量,即按鈕和動作,這兩個變量被傳遞給了btnChangeLabel_Click函數(shù),接下來我們就要寫一下這個函數(shù)

private void btnChangeLabel_Click(object sender, EventArgs e)
{
    label1.Text = "并沒有新Label,只有新Text";
}

label1就是上一節(jié)創(chuàng)建的Label,label1.Text就是上一節(jié)所說的Label的Text屬性。這個函數(shù)的意思是,當(dāng)點擊按鈕的時候,label1的文字發(fā)生變化,效果為

C#中的WinForm框架如何使用

事件

點擊Shift+F7可以從代碼界面返回到設(shè)計界面,選中按鈕后,查看右下角其對應(yīng)的屬性欄,可以看到一個閃電的小圖標(biāo),點擊這個圖標(biāo),下拉滾動條,可以看到操作這個子標(biāo)題下,有個Click的操作,其右側(cè)內(nèi)容為btnChangeLabel_Click。

至此,事情的前因后果應(yīng)該就清晰了,按鈕btnChangeLabel正是在這個小閃電這里,注冊了Click這種操作,并取名為btnChangeLabel_Click,然后才有了代碼界面中的函數(shù)。

在這個小閃電所對應(yīng)的列表中,就是可以綁定到按鈕btnChangeLabel中的各種事件,Click只是其中一種。這些事件被詳細(xì)地分門別類,這些類別也很有條理,只有最后一組Key,不知道被哪個神仙翻譯成了鑰匙,其實指的應(yīng)該是按鍵吧。

比如,接下來可以注冊一個KeyDown的命令,在其右側(cè)填入btnTest_KeyDown后然后回車,VS會自動跳回到代碼界面,并已經(jīng)新建好了相應(yīng)的函數(shù)

private void btnTest_KeyDown(object sender, KeyEventArgs e)
{
}

這是個鍵盤按鍵觸發(fā)的事件,里面的函數(shù)隨意填寫就好,

接下來從工具箱中拖動一個TextBox到Form1,在右下角的屬性欄里,將其重命名為tbTest。別忘了點擊一下小閃電左邊的小扳手,否則在事件列表中是找不到Name屬性的。

接下來點擊F7,跳轉(zhuǎn)回C#界面,更改在btnTest_KeyDown這個函數(shù)

private void btnTest_KeyDown(object sender, KeyEventArgs e)
{
    tbTest.Text = $"{e.KeyCode}:啊我被按下了";
}

其中,$字符串早就講過了,可以將花括號中的數(shù)據(jù)轉(zhuǎn)成字符串。e.KeyCode表示按鍵對應(yīng)的代碼。

因為強(qiáng)迫癥的原因,貌似還得新建一個對偶的函數(shù),細(xì)節(jié)就不贅述了,反正寫成如下這樣

private void btnTest_KeyUp(object sender, KeyEventArgs e)
{
    tbTest.Text = $"{e.KeyCode}:嘿嘿我又彈起來了";
}

效果為

C#中的WinForm框架如何使用

常用控件

在設(shè)計界面,Textbox與Label, Button似乎有點區(qū)別,即選中之后,其右上角會出現(xiàn)一個三角?,點擊之后會出現(xiàn)一個單選框,內(nèi)容是多行。

也就是說,正常創(chuàng)建的Textbox是不支持回車換行的,但選擇了多行之后,就支持了。

有這種額外內(nèi)容的控件為數(shù)不少,比如ComboBox,下拉選框,將其從工具箱拖動到Form1之后,點擊?,選擇編輯項,于是彈出了字符串集合編輯器,按照提示,在里面輸入




然后運(yùn)行程序,可以自行看看效果。

PictureBox,顧名思義是圖片箱子,將其拖動到Form1后,同樣點擊?->選擇圖像,會彈出選擇資源對話框,選擇本地資源->導(dǎo)入,就可以把任何一張圖片展示在PictureBox中了。如果圖像尺寸不合適,可以將大小模式選為Zoom。

最后,有三個簡單控件一直沒來得及說,即CheckBox,LinkLabel以及NumericUpDown,這三個控件分別是單選框、鏈接標(biāo)簽以及數(shù)值框。

其中,單選框可以與布爾數(shù)據(jù)類型相匹配,其屬性Checked為布爾數(shù)據(jù)類型,故常用于表示某種開關(guān);LinkLabel的外表是有下劃線像鏈接一樣的Label,但其內(nèi)在卻是個按鈕,可以綁定點擊事件;NumericUpDown的Value屬性為數(shù)值類型,常用于設(shè)置數(shù)值變量。

以上就是關(guān)于“C#中的WinForm框架如何使用”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI