一文带你快速学会C#中WinForm框架的使用详解

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

一文带你快速学会C#中WinForm框架的使用详解

微小冷   2023-03-23 我要评论

前文提要:

超快速成,零基础掌握C#开发中最重要的概念

抽丝剥茧,C#面向对象快速上手

Label和控件属性

WinForm是一门非常经济实惠的技术,就是说,可以在短时间内学会,并迅速借此进行项目开发。尽管在很多方面不够现代,做出来的东西又Low又丑,但绝大多数的应用场景也不需要高端大气上档次。或许正是因为这种特点,WinForm在工控领域用得非常多,毕竟可以迅速实现某个小功能。

在VS中创建新项目,模板为C#Windows窗体应用,名称位置啥的随便选。

创建成功之后,进入设计窗口,可以看到默认已经生成了一个窗口,如下图所示,然后就可以愉快地拖控件了,所有控件都在左侧的工具箱里。如果初次打开看不到工具箱,可以试一下快捷键Ctrl+Alt+X。

接下来用鼠标把工具箱中的Label拖动到窗口Form1上面,同时关注VS右下角的属性栏,可以看到Label的属性,如下图所示。

当然,VS中的很多工具栏都可以拖动到任意位置,上图就是点击属性栏的▼标志,选择浮动,然后拖动到了Form1的右侧。

其中,(Name)为这个Label1控件在程序中的名字,若想在C#中调用这个标签,就得用到这个名字。

拖动属性栏的滚动条,在外观这一标题下,有Text属性,其内哦让那个为label1,这个Text是Label1这个控件所展示出来的字符,将其更改后,窗口上的标签也响应发生变化,就像下图这样

外观这一主题中的参数,在改动之后几乎都没有什么严重后果,比如各种配色啥的都可以尝试一番,这里就不一一演示了。

按钮和回调逻辑

接下来从工具箱中拖动一个按钮,即把Button拖动到Form1上,将其Text属性改为新Label;将其Name改为btnChangeLabel。

然后双击这个按钮,神奇的一幕发生了,设计窗口不见了,取而代之的是我们熟悉的代码界面,其内容为

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

        private void btnChangeLabel_Click(object sender, EventArgs e)
        {

        }
    }
}

命名空间就不说了,Form1是一个继承了Form的类,而其修饰语中,除了老面孔public,又多了一个partial,这个partial表示下面花括号括起来的代码,可以是Form1的一部分。更具体一点,就是说这个Form1类可以写在多个文件中。

接下来,public Form1(),是Form1的构造函数,无需赘言。

再往下,就是刚刚双击按钮所自动生成的响应函数,其中private表示这个函数是个私有函数,只有在Form1这个类中才能被调用。函数名也是自动生成的,包括两部分,下划线前面的就是按钮的名字,下划线后面Click,表示这个函数的触发条件是单击。

然后函数的输入参数有两个,分别是object类型的sender,以及EventArgs类型的e,前者表示刚刚点击的那个按钮,后者表示点击的这个动作。

梳理一下就是,点击按钮是产生了两个变量,即按钮和动作,这两个变量被传递给了btnChangeLabel_Click函数,接下来我们就要写一下这个函数

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

label1就是上一节创建的Label,label1.Text就是上一节所说的Label的Text属性。这个函数的意思是,当点击按钮的时候,label1的文字发生变化,效果为

事件

点击Shift+F7可以从代码界面返回到设计界面,选中按钮后,查看右下角其对应的属性栏,可以看到一个闪电的小图标,点击这个图标,下拉滚动条,可以看到操作这个子标题下,有个Click的操作,其右侧内容为btnChangeLabel_Click。

至此,事情的前因后果应该就清晰了,按钮btnChangeLabel正是在这个小闪电这里,注册了Click这种操作,并取名为btnChangeLabel_Click,然后才有了代码界面中的函数。

在这个小闪电所对应的列表中,就是可以绑定到按钮btnChangeLabel中的各种事件,Click只是其中一种。这些事件被详细地分门别类,这些类别也很有条理,只有最后一组Key,不知道被哪个神仙翻译成了钥匙,其实指的应该是按键吧。

比如,接下来可以注册一个KeyDown的命令,在其右侧填入btnTest_KeyDown后然后回车,VS会自动跳回到代码界面,并已经新建好了相应的函数

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

这是个键盘按键触发的事件,里面的函数随意填写就好,

接下来从工具箱中拖动一个TextBox到Form1,在右下角的属性栏里,将其重命名为tbTest。别忘了点击一下小闪电左边的小扳手,否则在事件列表中是找不到Name属性的。

接下来点击F7,跳转回C#界面,更改在btnTest_KeyDown这个函数

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

其中,$字符串早就讲过了,可以将花括号中的数据转成字符串。e.KeyCode表示按键对应的代码。

因为强迫症的原因,貌似还得新建一个对偶的函数,细节就不赘述了,反正写成如下这样

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

效果为

常用控件

在设计界面,Textbox与Label, Button似乎有点区别,即选中之后,其右上角会出现一个三角▶,点击之后会出现一个单选框,内容是多行。

也就是说,正常创建的Textbox是不支持回车换行的,但选择了多行之后,就支持了。

有这种额外内容的控件为数不少,比如ComboBox,下拉选框,将其从工具箱拖动到Form1之后,点击▶,选择编辑项,于是弹出了字符串集合编辑器,按照提示,在里面输入




然后运行程序,可以自行看看效果。

PictureBox,顾名思义是图片箱子,将其拖动到Form1后,同样点击▶->选择图像,会弹出选择资源对话框,选择本地资源->导入,就可以把任何一张图片展示在PictureBox中了。如果图像尺寸不合适,可以将大小模式选为Zoom。

最后,有三个简单控件一直没来得及说,即CheckBox,LinkLabel以及NumericUpDown,这三个控件分别是单选框、链接标签以及数值框。

其中,单选框可以与布尔数据类型相匹配,其属性Checked为布尔数据类型,故常用于表示某种开关;LinkLabel的外表是有下划线像链接一样的Label,但其内在却是个按钮,可以绑定点击事件;NumericUpDown的Value属性为数值类型,常用于设置数值变量。

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们