最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文帶你快速學(xué)會C#中WinForm框架的使用詳解

 更新時間:2023年02月26日 10:09:08   作者:微小冷  
WinForm是一門非常經(jīng)濟(jì)實(shí)惠的技術(shù),就是說,可以在短時間內(nèi)學(xué)會,并迅速借此進(jìn)行項(xiàng)目開發(fā)。本文就來和大家聊聊WinForm框架的使用方法,希望對大家有所幫助

前文提要:

超快速成,零基礎(chǔ)掌握C#開發(fā)中最重要的概念

抽絲剝繭,C#面向?qū)ο罂焖偕鲜?/a>

Label和控件屬性

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

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

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

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

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

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

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

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

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

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

然后雙擊這個按鈕,神奇的一幕發(fā)生了,設(shè)計(jì)窗口不見了,取而代之的是我們熟悉的代碼界面,其內(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的一部分。更具體一點(diǎn),就是說這個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,前者表示剛剛點(diǎn)擊的那個按鈕,后者表示點(diǎn)擊的這個動作。

梳理一下就是,點(diǎn)擊按鈕是產(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)點(diǎn)擊按鈕的時候,label1的文字發(fā)生變化,效果為

事件

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

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

在這個小閃電所對應(yīng)的列表中,就是可以綁定到按鈕btnChangeLabel中的各種事件,Click只是其中一種。這些事件被詳細(xì)地分門別類,這些類別也很有條理,只有最后一組Key,不知道被哪個神仙翻譯成了鑰匙,其實(shí)指的應(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。別忘了點(diǎn)擊一下小閃電左邊的小扳手,否則在事件列表中是找不到Name屬性的。

接下來點(diǎn)擊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)的代碼。

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

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

效果為

常用控件

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

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

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




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

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

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

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

到此這篇關(guān)于一文帶你快速學(xué)會C#中WinForm框架的使用詳解的文章就介紹到這了,更多相關(guān)C# WinForm框架內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 實(shí)例代碼講解c# 線程(下)

    實(shí)例代碼講解c# 線程(下)

    這篇文章主要介紹了c# 線程的的相關(guān)資料,文中示例代碼非常細(xì)致,對大家的學(xué)習(xí)有很大幫助,感興趣的朋友可以了解下
    2020-06-06
  • C#模擬實(shí)現(xiàn)QQ窗體功能

    C#模擬實(shí)現(xiàn)QQ窗體功能

    這篇文章主要為大家詳細(xì)介紹了如何通過C#實(shí)現(xiàn)類似QQ窗體的功能,當(dāng)窗體放置到屏幕的邊緣,可以將窗體隱藏,當(dāng)鼠標(biāo)再次放置到屏幕邊緣時,窗體可再次顯示,需要的可以參考一下
    2022-12-12
  • unity實(shí)現(xiàn)按住鼠標(biāo)選取區(qū)域截圖

    unity實(shí)現(xiàn)按住鼠標(biāo)選取區(qū)域截圖

    這篇文章主要為大家詳細(xì)介紹了unity實(shí)現(xiàn)按住鼠標(biāo)選取區(qū)域截圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • 一個可逆加密的類(使用3DES加密)

    一個可逆加密的類(使用3DES加密)

    表示三重?cái)?shù)據(jù)加密標(biāo)準(zhǔn)算法的基類,TripleDES 的所有實(shí)現(xiàn)都必須從此基類派生。是從 SymmetricAlgorithm 類里繼承出來。
    2011-07-07
  • C#隱式/顯示實(shí)現(xiàn)接口方法詳解

    C#隱式/顯示實(shí)現(xiàn)接口方法詳解

    這篇文章主要為大家詳細(xì)介紹了C#隱式/顯示實(shí)現(xiàn)接口方法,接口的使用場景介紹,感興趣的小伙伴們可以參考一下
    2016-03-03
  • C#之Expression表達(dá)式樹實(shí)例

    C#之Expression表達(dá)式樹實(shí)例

    這篇文章主要介紹了C#之Expression表達(dá)式樹,包括了表達(dá)式樹的原理與用法技巧,需要的朋友可以參考下
    2014-10-10
  • 詳解c# 深克隆與淺克隆

    詳解c# 深克隆與淺克隆

    這篇文章主要介紹了c# 深克隆與淺克隆的相關(guān)資料,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • Unity3D 單例模式和靜態(tài)類的使用詳解

    Unity3D 單例模式和靜態(tài)類的使用詳解

    這篇文章主要介紹了Unity3D 單例模式和靜態(tài)類的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • C# System.TypeInitializationException 異常處理方案

    C# System.TypeInitializationException 異常處理方案

    這篇文章主要介紹了C# System.TypeInitializationException 異常處理方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • C#使用前序遍歷、中序遍歷和后序遍歷打印二叉樹的方法

    C#使用前序遍歷、中序遍歷和后序遍歷打印二叉樹的方法

    這篇文章主要介紹了C#使用前序遍歷、中序遍歷和后序遍歷打印二叉樹的方法,涉及C#遍歷二叉樹的相關(guān)技巧,需要的朋友可以參考下
    2015-04-04

最新評論

沂水县| 罗江县| 桦南县| 西宁市| 望城县| 林周县| 阜城县| 牟定县| 绥滨县| 桐柏县| 浦城县| 凤冈县| 连州市| 黄大仙区| 大荔县| 隆林| 台前县| 西贡区| 林西县| 潞城市| 马公市| 定州市| 绥阳县| 惠东县| 邵东县| 阜阳市| 且末县| 通许县| 塔河县| 青龙| 合水县| 昭平县| 西平县| 东港市| 陈巴尔虎旗| 延庆县| 潜江市| 和静县| 沙洋县| 兰坪| 克山县|