零基础学会asp.net做网站/公众号/小程序之三:实战初体验(简单程序教学)

关注我,持续分享逻辑思维&管理思维&面试题; 可提供大厂面试辅导、及定制化求职/在职/管理/架构辅导;

博主在互联网大厂深耕近二十年,从一线码农做起,到人工智能公司副总裁。希望把过往经验总结出来,帮助到更多同学。有兴趣可关注博主后加个人微信(平台规定文章中不能贴联系方式,需先关注博主,再加微信),后续一起交流学习。
本专栏以实战为主,轻理论。如果哪里有不太懂的,可以随时和我交流。

-------------------------------------正文----------------------------------------

目录

一、新建解决方案

二、新建项目

三、项目启动逻辑代码

四、添加恶搞按钮及处理逻辑

五、添加按钮闪烁特效

六、运行程序的几种方法

七、控件及用法

1. Button(按钮)

2. Label(标签)

3. TextBox(文本框)

4. ComboBox(组合框)

5. ListBox(列表框)

6. CheckBox(复选框)

7. RadioButton(单选按钮)

8. PictureBox(图片框)

9. DataGridView(数据网格视图)

10. TabControl(选项卡控件)

11. MenuStrip(菜单栏)

12. ToolStrip(工具栏)

13. ProgressBar(进度条)

14. DateTimePicker(日期时间选择器)

15. TrackBar(滑动条)


安装好各个环境后,我们直接开始教学。这里先从实战出发,以1-2个有趣的程序,让学生对编程感兴趣起来。

一、新建解决方案

打开Visual Studio后,点击“文件”--》“新建”--》“项目”,如下图所示。

在出来的对话框中,选择“其他项目类型”--》“Visual Studio 解决方案”,然后选定右边的“空白解决方案”,在下面输出解决方案的名字和路径。我在这里为了教学,新建了一个“CsdnTeach”的解决方案。

c#的解决方案(solution)就是解决一个问题的一揽子计划。它类似于一个文件夹,里面可以创建各种项目(如Windows程序、类库、网站,都可以)。当生成整个解决方案的时候,相当于把解决方案下的所有项目都编译一遍。生成所有项目的目标文件。

二、新建项目

为这个解决方案添加一个新项目。如下图所示,右键单击(后续称为右击)解决方案名字,“添加”--》“新建项目”。

这次添加Windows窗体应用程序,这个编译成功后,生成的是Widnwos下的可执行文件(exe后缀程序),只要本机有安装.net framework,均可运行这个可执行文件。此例中,我将此项目名称设置为EGao(恶搞)的拼音,则生成的可执行文件为:EGao.exe。

三、项目启动逻辑代码

添加后,出来的对应框,就是这个EGao.exe运行后的窗体。双击这个窗体的空白处,自动生成程序打开时,要执行的代码。如下图及再下面的代码所示。

private void Form1_Load(object sender, EventArgs e)
{
    MessageBox.Show("HelloWorld");
}

上面的例子中,我们在程序启动时,就弹出一个对话框,内容为:HelloWorld。在后面执行这个Exe的时候,会看到效果:先弹出一个对话框,再弹出Form1窗体。

四、添加恶搞按钮及处理逻辑

具体效果我们在后面执行时展示。当前我们先为这个窗体添加一个按钮。如下图,在工具箱中,找到Button,点一下,鼠标再移到Form1窗体中,就会呈现出类似截图的效果,鼠标左键按下,则开始画这个按钮,可自由调整,鼠标松开,则这个按钮大小调整到位(是不是和截图的效果很像)。

如上图,我们选中这个Button,选中属性选项卡,我们可以修改各种属性。
常见的就是修改Name,这时这个按钮的唯一标识。如果不修改,以后就只能Button1, Button2这样顺序去标识。因此,一般我们像写代码一样,对这个唯一标识进行标记,以便在后续用的时候,自己能记住它的名字。比如后续可能会在代码里,改变这个按钮的相关属性,那就可以使用Button1.属性名 = xx,这样的方式进行修改。在后面的例子中,我们会修改这个按钮的BackColor,即背景色。此处,我们因为是恶搞,将名字改为:BtnPig。
还有一个常见修改的属性是Text,这是显示给用户看的文本。这里我们修改为“不点我就是猪”。这个文本,是可以重复的。可以很多按钮的文本,都显示为同样的文字,只是位置不到。因为Name不同,所以,在代码里是以Name作为区分。

然后双击这个按钮,进入的就是点击这个按钮时,我们要进行做的事情。以下为具体代码:

private void BtnPig_Click(object sender, EventArgs e)
        {
            DialogResult result = MessageBox.Show("Tips:请选择", "Title:确认下你是不是猪", MessageBoxButtons.YesNo);
            if (result == DialogResult.Yes)
            {
                for (int i = 1; i <= 2; i++)
                {
                    MessageBox.Show("你承认了,我让你点2下就好,这是第【"+i.ToString()+"】次");
                }
            }
            else
            {
                for (int i = 1; i <= 3; i++)
                {
                    MessageBox.Show("你不承认,我要罚你点3下,这是第【" + i.ToString() + "】次");
                }
            }
        }

以上代码解释下,先是弹出一个带“是”和“否”的对话框。这个对话框的标题和提示分别为:"Title:确认下你是不是猪",和"Tips:请选择"。下面有显示效果。

并根据DialogResult result记录用户点了“是”还是“否”。如果“是”,则继续弹窗2下,如果“否”,则继续弹窗3下。如上图所示。

写好代码后,我们就可以右击这个项目名,进行生成(即编译)。编译的意思是根据现有代码,生成符合现有代码逻辑的软件/程序。

编译完后,点中间上部的“启动”按钮。就能启动这个EGao.exe程序了。

启动后,如前面介绍,先弹一个对话框:“HelloWorld”。

确定后,才会出现Form1这个窗体。

点击“不点我就是猪”这个按钮。我们能看到我们代码里指定的Title和Tips显示的位置。以及“是”和“否”按钮。先点“是”,看下效果。

如上,对话框呈现2次“你承认了,我让你点2下就好,这是第X次”。

我们再看看点“否”的效果。

效果:弹出3次“你不承认,我要罚你点3下,这是第X次”。

PS:此处并没有侮辱人的意思,只不过小孩子喜欢恶作剧,以这种手段来吸引孩子是比较合适的。我们可以甚至连续弹出100次“你是猪”这样的对话框。当然,这是初级恶搞。如果需要高级些的,可以不断地申请内存,真到死机。for循环里不断地new 内存即可。此处不展开讲。

五、添加按钮闪烁特效

难一点的来了(虽然还是很简单,但对初学者来说,已经足够吸引了)。我们增加一个按钮。Name为BtnColor,显示文本为“点我看看”,如下图:

双击这个按钮,即可编辑点击按钮后的逻辑代码:

Timer timer = new Timer();
        bool is_show = true;
        private void BtnColor_Click(object sender, EventArgs e)
        {
            if (is_show)
            {
                timer.Interval = 1000; // 1000毫秒(1秒)
                timer.Tick += Timer_Tick;
                is_show = false;
                timer.Start();
            }
            else
            {
                is_show = true;
                timer.Stop();
            }
        }

        bool color_judge = true;
        private void Timer_Tick(object sender, EventArgs e)
        {
            if (color_judge)
            {
                BtnPig.BackColor = Color.Red;
                color_judge = false;
            }
            else
            {
                BtnPig.BackColor = Color.Black;
                color_judge = true;
            }
        }

如上图,因Timer timer是全局变量,不能放在点击后的处理函数里,所以,我们把它放在了外面。
Timer属于另一种控件类,意思是在指定的间隔时间里,它将会运行指定的代码逻辑。

实现的逻辑为:第一次点击时,is_show是初始值(true),则进入初始代码:timer设置间隔时间为1秒,timer的处理函数为Timer_Tick,然后启动Timer。
这样,每秒会执行一次Timer_Tick,而每次进入Timer_Tick,就会反转一下color_judge,并根据color_judge的值,不断设置左边按钮的背景色。从而实现了每秒变一次左边按钮背景色的效果,即闪烁。如下图:

根据上面代码,再点一下“点我看看”,即停止闪烁。再次点击,又会闪烁。这样交替进行。

六、运行程序的几种方法

第1种方法是将项目设计为启动项目,如下图所示,右击项目,出来的“属性”选项中,在“调试”Tab中设计这个项目为启动项目。这样,当点击上述“启动”时,即启动这个解决方案的启动项目。我们上面的例子就是使用这种方法。

第2种方法是直接对相关项目右击,在出来的选项卡中选择“调度”--》“启动新实例”。这样,即使这个项目不是启动项目,也能单独运行它。

第3种方法是直接到这个项目的文件夹下,找到对应的bin/Debug,或bin/Release,里面会有这个项目生成后的目标文件。这里是EGao.exe,双击它,就像打开Windows应用程序一样,可以直接运行(运行电脑,需要安装.net framework)。

七、控件及用法

以上,我们介绍了窗体,以及按钮(Button)的使用。Windows应用程序,一般比较复杂,有各种按钮,下拉框,复选框,单选框等。下面再简单介绍下其它控件的用法。

1. Button(按钮)

  • 属性

    • Text:按钮上显示的文本。
    • Enabled:指示按钮是否可用。
    • ForeColor:按钮文本的颜色。
    • BackColor:按钮的背景颜色。
    • Font:按钮文本的字体。
  • 用法:按钮是最常见的用户交互控件之一。通过在Click事件上附加处理程序,您可以响应按钮的点击动作,并执行相应的操作。

  • 方法

    • PerformClick():通过代码模拟用户单击按钮。

2. Label(标签)

  • 属性

    • Text:标签上显示的文本。
    • ForeColor:文本的颜色。
    • BackColor:标签的背景颜色。
    • Font:文本的字体。
  • 用法:标签通常用于显示静态文本或作为界面元素的标识符。它们是只读的,用户不能在标签中输入文本。

3. TextBox(文本框)

  • 属性

    • Text:文本框中显示的文本。
    • ReadOnly:指示文本框是否为只读。
    • MaxLength:限制用户可以输入的最大字符数。
    • Multiline:指示文本框是否可以显示多行文本。
  • 用法:文本框允许用户输入文本,可以用于接收用户的输入、编辑数据等任务。

  • 方法

    • Select(int start, int length):选择文本框中的一部分文本。
    • Clear():清除文本框中的文本。

4. ComboBox(组合框)

  • 属性

    • Items:组合框中的项。
    • SelectedIndex:当前选定项的索引。
    • Text:组合框中当前选择项的文本。
  • 用法:组合框结合了文本框和列表框的功能,允许用户从一个下拉列表中选择一个项。

  • 方法

    • Add(string item):向组合框添加项。

5. ListBox(列表框)

  • 属性

    • Items:列表框中的项。
    • SelectedIndex:当前选定项的索引。
    • SelectedItems:选定的项的集合。
  • 用法:列表框显示一个列表,用户可以从中选择一个或多个项。多选模式下,可以使用SelectedIndices属性来访问选定项的索引。

6. CheckBox(复选框)

  • 属性

    • Checked:指示复选框是否被选中。
    • Text:复选框旁边显示的文本。
  • 用法:复选框允许用户选择或取消选择一个或多个选项。

7. RadioButton(单选按钮)

  • 属性

    • Checked:指示单选按钮是否被选中。
    • Text:单选按钮旁边显示的文本。
  • 用法:单选按钮用于在一组互斥的选项中选择一个。

8. PictureBox(图片框)

  • 属性

    • Image:要显示的图像。
  • 用法:图片框用于在窗体上显示图像。可以通过SizeMode属性调整图像的显示方式。

9. DataGridView(数据网格视图)

  • 属性

    • DataSource:数据源。
    • Rows:网格中的行。
  • 用法:DataGridView用于显示和编辑数据。可以将它绑定到数据源,也可以通过代码添加行和列。

10. TabControl(选项卡控件)

  • 属性

    • TabPages:选项卡页面的集合。
  • 用法:选项卡控件用于通过多个选项卡组织和浏览相关内容。

11. MenuStrip(菜单栏)

  • 属性

    • Items:菜单项的集合。
  • 用法:菜单栏提供了应用程序的主菜单,您可以在其中添加各种命令和功能。

12. ToolStrip(工具栏)

  • 属性

    • Items:工具栏项的集合。
  • 用法:工具栏通常包含了一系列常用命令按钮,用于快速访问功能。

13. ProgressBar(进度条)

  • 属性

    • Value:当前进度的值。
  • 用法:进度条用于显示任务的进度,例如文件下载、安装过程等。

14. DateTimePicker(日期时间选择器)

  • 属性

    • Value:选择的日期和时间。
  • 用法:日期时间选择器允许用户选择日期和时间。

15. TrackBar(滑动条)

  • 属性

    • Value:滑动条的当前值。
  • 用法:滑动条允许用户通过拖动滑块来选择一个范围内的值。

这些控件的属性和方法是它们的核心功能。您可以在设计时或者在代码中使用这些属性和方法来定制控件的行为和外观,以满足您的需求。

这里,也只是对以上控件的简单介绍,每个控件还有很多属性和方法,具体需要我们在使用中,再详细查询,或者需要用到某样功能时,再反查哪些控件能实现这个功能。因我们核心是讲Web、小程序、公众号等实现。因此,这里对Windows应用程序不再进行详细讲解。接下来会接入Web的教学

这里讲Windows应用程序的生成,是因为在未来我们极有可能会用得上。比如我在实现分库分表中,就会使用应用程序去批量建100*100个库表。又或者,使用应用程序,给我的某个网站批量导入一些初始数据。这些能力,做在Web中也可以,但调试相对没那么方便,需要生成后,打开浏览器进行访问,而Windows应用程序可以直接使用。而且因为是临时使用的,用过一次可能就不用了,所以我会生成一个临时的Windows应用程序,所有临时代码在这进行调试

感兴趣的同学辛苦 关注/点赞 ,持续分享逻辑、算法、管理、技术、人工智能相关的文章。

有意找工作的同学,请参考博主的原创:《面试官心得--面试前应该如何准备》,《面试官心得--面试时如何进行自我介绍》, 《做好面试准备,迎接2024金三银四》。
或关注博主免费专栏【程序员宝典--常用代码分享】里面有大量面试涉及的算法或数据结构编程题。

博主其它经典原创:《管理心得--如何高效进行跨部门合作》,《技术心得--如何成为优秀的架构师》、《管理心得--如何成为优秀的架构师》、《管理心理--程序员如何选择职业赛道》,及
《C#实例:SQL如何添加数据》,《C#实战分享--爬虫的基础原理及实现》欢迎大家阅读。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/665035.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

对称二叉树(oj题)

一、题目链接https://leetcode-cn.com/problems/symmetric-tree/ 二、题目思路 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称的思路: 1.将该树的左子树和右子树&#xff0c;当做两棵树&#xff0c;调用 判断两棵树是否对称相等的函数 2.判断两颗树是否对称相…

【网络安全】Web安全学习-前言及先导

一、网络安全概述 网络安全是指网络系统的硬件、软件及其系统中的数据受到保护&#xff0c;不因偶然的或者恶意的原因遭到破坏、更改、泄露&#xff0c;系统能连续可靠的正常运行&#xff0c;网络服务不中断。简单来说。就是要保障我们的网络环境安全稳定&#xff0c;不被人破…

深入理解linux文件系统与日志分析

深入理解linux文件系统与日志分析 linux文件系统: 文件是存储在硬盘上的&#xff0c;硬盘上的最小存储单位是扇区&#xff0c;每个扇区的大小是512字节。 inode&#xff1a;元信息&#xff08;文件的属性 权限&#xff0c;创建者&#xff0c;创建日期等等&#xff09; block…

【Python】解决Python报错:AttributeError: ‘generator‘ object has no attribute ‘xxx‘

&#x1f9d1; 博主简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

【核心动画-关键帧动画-CAKeyframeAnimation Objective-C语言】

一、接下来,我们来说这个关键帧动画, 1.我们把之前的基本动画,这一坨代码,备份到test1方法里边, 然后,开始说我们的关键帧动画,步骤都是一样的,都是三大步: // 关键帧动画 // 1.做什么动画 // 2.怎么做动画 // 3.对谁做动画 1)做什么动画 第一,我们现在要创建…

计算机图形学入门04:视图变换

1.MVP变换 将虚拟场景中的模型投影到屏幕上&#xff0c;也就是二维平面上&#xff0c;需要分三个变换。 1.首先需要知道模型的位置&#xff0c;也就是前面提到的基本变换&#xff0c;像缩放、平移&#xff0c;旋转&#xff0c;也称为模型(Model)变换。 2.然后需要知道从…

STM32定时器与PWM对LED灯的控制

文章目录 一、定时器——Timer&#xff08;一&#xff09;概念&#xff08;二&#xff09;分类&#xff08;三&#xff09;功能&#xff08;四&#xff09;结构1.模块一——时基单元2.模块二——输出比较模块 二、实验内容&#xff08;一&#xff09;标准库点亮LED灯1.实验说明…

99.网络游戏逆向分析与漏洞攻防-ui界面的设计-角色信息显示的界面与功能

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果&#xff0c;代码看不懂是正常的&#xff0c;只要会抄就行&#xff0c;抄着抄着就能懂了 内容…

新型 Meterpreter 后门能够在图片中隐藏恶意代码

据Cyber Security News消息&#xff0c;ANY.RUN 沙盒分析了一种被称为Meterpreter 的新型后门恶意软件&#xff0c;能利用复杂的隐写技术将恶意有效载荷隐藏在看似无害的图片文件中。 基于Meterpreter的攻击从一个包含 PowerShell 脚本的 .NET 可执行文件开始&#xff0c;该脚…

解决VSCode右键没有Open In Default Browser问题

在VSCode进行Web小程序测试时&#xff0c;我们在新建的HTML文件中输入 !会自动生成页面代码骨架&#xff0c;写入内容后&#xff0c;我们想要右键在浏览器中预览。发现右键没有“Open In Default Browser”选项。原因是没有安装插件。 下面是解决方案&#xff1a;首先在VSCode找…

【CSS布局】响应式设计原则以及双飞翼布局圣杯布局

历史小剧场 温体仁未必是奸臣&#xff0c;钱谦益未必是好人&#xff0c;不需要惊讶&#xff0c;历史往往跟你所想的并不一样。英雄可以写成懦夫&#xff0c;能臣可以写成奸臣&#xff0c;史实并不重要&#xff0c;重要的是&#xff0c;谁来写。----《明朝那些事儿》 响应式设计…

【计算机毕设】基于SpringBoot的学生心理咨询评估系统设计与实现 - 源码免费(私信领取)

免费领取源码 &#xff5c; 项目完整可运行 &#xff5c; v&#xff1a;chengn7890 诚招源码校园代理&#xff01; 1. 研究目的 随着社会的快速发展和竞争压力的增加&#xff0c;学生心理健康问题日益突出。设计和实现一个基于SpringBoot的学生心理咨询评估系统&#xff0c;旨在…

【Seafile】Seafile容器版文件删除后存储空间不释放问题解决

Seafile是一款非常优秀的网盘系统&#xff0c;我们可以根据官方文档&#xff0c;在本地虚拟机研究Seafile免费版的安装和使用&#xff0c;安装建议采用使用docker容器的方式。 不过在使用过程中&#xff0c;刚接触的小伙伴可能会遇到这样的问题&#xff1a; 删除网盘里面的文…

煤矿输送设备无人化运维巡检解决方案

一、煤矿行业目前存在的挑战和难题 煤矿行业面临着复杂的环境&#xff0c;如粉尘、潮湿、高温、高瓦斯等&#xff0c;对巡检设备和人员安全有威胁。并且设备分布广、需要长时间作业&#xff0c;全面巡检难度大、对巡检工作的耐力和持续性要求高。而煤矿输送设备无人化运维巡检…

OAK相机如何将 YOLOv10 模型转换成 blob 格式?

编辑&#xff1a;OAK中国 首发&#xff1a;oakchina.cn 喜欢的话&#xff0c;请多多&#x1f44d;⭐️✍ 内容可能会不定期更新&#xff0c;官网内容都是最新的&#xff0c;请查看首发地址链接。 Hello&#xff0c;大家好&#xff0c;这里是OAK中国&#xff0c;我是Ashely。 专…

MedSAM 学习笔记(续):训练自定义数据集

1、下载官方权重 官方的预训练权重:https://dl.fbaipublicfiles.com/segment_anything/sam_vit_b_01ec64.pth 下载后保存在:work_dir/SAM/sam_vit_b_01ec64.pth 目录 2、摆放数据集 因为MedSAM 分割模型需要对3D数据集进行切片处理,也就是对nii.gz 数据处理成 npy 格式 …

计算机图形学入门05:投影变换

1.投影变换 上一章已经介绍了投影变换&#xff0c;就是将三维图像投影到二维平面上&#xff0c;而投影变换又分为正交投影(Orthographic Projection)和透视投影(Perspective Projection)。如下图&#xff1a; 正交投影 没有近大远小的现象&#xff0c;无论图形与视点距离是远是…

通过定时器和脉冲控制LED

一、定时器 &#xff08;一&#xff09;定时器简介 STM32定时器是STM32微控制器中的重要块&#xff0c;用于生成精确的时间基准。它可以用于测量时间间隔、产生脉冲、实现定时中断等功能。通过配置寄存器&#xff0c;用户可以灵活地控制定时器的工作模式和参数&#xff0c;实现…

Visual Studio Code使用(C++项目新建,运行)

VS Code 直接在官网下载安装。 接下来安装插件&#xff0c;下图是C所需的对应插件 1.新建项目 VS Code下载安装完成后&#xff0c;直接进入欢迎页&#xff1a; 在访达/文件夹中新建一个文件夹&#xff0c;欢迎页点击【打开】&#xff0c;选择刚刚新建的文件夹。点击第一个图…

材质技术在AI去衣中的作用

随着人工智能技术的飞速发展&#xff0c;越来越多的应用场景开始涌现。其中&#xff0c;AI去衣技术作为一种新兴的图像处理技术&#xff0c;已经在很多领域得到了广泛的应用。而在AI去衣技术中&#xff0c;材质技术起到了至关重要的作用。本文将详细介绍材质技术在AI去衣中的作…