C#(Csharp)我的基础教程(四)(我的菜鸟教程笔记)-Windows项目结构分析、UI设计和综合事件应用的探究与学习
目录

windows项目是我们.NET学习一开始必备的内容。
1、窗体类(主代码文件+窗体设计器后台代码文件)
主窗体对象的创建:在Program类里面: Application.Run(new FrmMain());这句代码就决定了,当前窗体是项目的主窗体。也就是作为项目的主线程运行。如果你关闭主窗体,整个项目会退出。
特点:继承自Form类。
部分类partial关键字。可以将两个同名的类关联起来,其实“这两个类”本质上是一个类,也就是为了方便维护和代码编写,把窗体设计器自动生成的代码,放到另一个部分类中。最后VS编译器编译的时候,还是编译到一起的。
这个可以通过ILDASM查询IL得到证实。
2、控件对象与窗体容器集合(Control)
【1】控件和组件的区别:控件是在窗体上可见的。组件是在窗体下面不可见的,也就是不占用窗体的空间。也就是没有可视化的界面。
【2】按钮控件的使用与代码分析。控件从拖放到显示,经过的步骤:
第一、创建该对象的成员变量。
第二、初始化这个成员变量的相关属性。(我们可以通过可视化属性窗口完成)
第三、窗体本身是一个容器,所有的控件,都会加到Controls集合中。
当我在窗体上添加一个容器控件的时候(比如GroupBox或者Panel)容器控件和其他的控件一样,也会被添加到Controls集合中。当我在容器中添加相关的控件的时候,这时候,容器中的控件,会添加到当前容器的Controls集合中,而不是窗体的Controls中,请大家务必记住。
3、Windows的事件驱动机制
【1】生活中的事件驱动机制。(疫情)下面是事件完整的模型:
提前指定疫情预案–>定义事件
针对疫情具体解决 -->处理事件
预案和疫情关联-->关联事件
疫情出现激发预案 -->激发事件
【2】程序中的事件。以按钮单击事件分析模型。
第一、事件定义(框架自带的)框架已经提前定义好了相关事件。
第二、事件处理(我们选择的)
private void btnTestEvent_Click(object sender, EventArgs e)
{
}
第三、事件关联: this.btnTestEvent.Click += new System.EventHandler(this.btnTestEvent_Click);
第四、事件激发:(用户单击按钮的行为)
4、事件的统一关联
foreach ( Control item in this.Controls){if ( item is Button && item.Tag.ToString() == "btn"){ }}
Tag没有数据的时候,会出现null对象的问题:System.NullReferenceException:“未将对象引用设置到对象的实例。”
这个问题会经常出现。大家要学会判断。
当我们按照上面的方法,增加一个新的按钮,只需要设置一下Tag=btn,事件自动关联。
这个其实就是模拟了软件开发中,当用户需求变化的时候,我们可以扩展内容,但是没有修改内容。
这个正是面向对象编程中的“开闭原则”。开发扩展,封闭修改。
相关文章:
C#(Csharp)我的基础教程(四)(我的菜鸟教程笔记)-Windows项目结构分析、UI设计和综合事件应用的探究与学习
目录 windows项目是我们.NET学习一开始必备的内容。 1、窗体类(主代码文件窗体设计器后台代码文件) 主窗体对象的创建:在Program类里面: Application.Run(new FrmMain());这句代码就决定了,当前窗体是项目的主窗体。…...
Flink: Only supported for operators
Exception in thread "main" java.lang.UnsupportedOperationException: Only supported for operators.at org.apache.flink.streaming.api.scala.DataStream.name(...
NSIDC定义的海冰相关概念
文章目录 相关概念Matlab绘图结果展示 相关概念 NSIDC 表示 “National Snow and Ice Data Center”,即美国国家雪和冰数据中心。NSIDC 是一个位于美国科罗拉多大学波尔得分校的研究中心,致力于收集、管理和分发全球雪和冰的科学数据。 Matlab绘图 cl…...
【码银送书第八期】《Python数据挖掘:入门进阶与实用案例分析》
摘要:本案例将主要结合自动售货机的实际情况,对销售的历史数据进行处理,利用pyecharts库、Matplotlib库进行可视化分析,并对未来4周商品的销售额进行预测,从而为企业制定相应的自动售货机市场需求分析及销售建议提供参…...
微信小程序底部tabBar不显示图标
现场还原 在设置微信小程序底部tabBar导航图标时,无论如何操作均无法显示在界面上 解决思路 问题1 图标类型 一开始以为不支持png类型,但查看官方API仅提示ICON尺寸大小 打开其他项目可以正常展示,排除图标类型问题 iconPath string 否 …...
PostgreSQL基操之角色、表空间、数据库与表
PostgreSQL基操之角色、表空间、数据库与表 角色创建与管理表空间创建与管理数据库创建与管理表创建与管理 角色创建与管理 PostgreSQL数据库里没有User的概念,只有Role的概念。有的Role可以用于登录数据库,这些Role与其他数据库中的用户等价。 --创建…...
【算法|滑动窗口No.1】leetcode209. 长度最小的子数组
个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…...
11_博客管理系统_实现过程
项目初始化 创建项目文件夹进入文件夹,执行 npm init -y 命令安装 express 和 mongoose,npm install express mongoose创建项目入口文件,app.js 或 index.js在 app.js 中进行项目搭建配置网站的路由配置网站静态资源目录 配置静态页面 配置…...
安防视频监控平台EasyCVR集成到ios系统不能播放是什么原因?如何解决?
视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,TSINGSEE青犀视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多路视频流&#…...
hutool实现文件上传与下载
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.16</version></dependency> 文件上传需要创建一个表 Autowiredprivate SysFileInfoMapper sysFileInfoMapper;Value("${ty.…...
vue3学习源码笔记(小白入门系列)------provide和 inject 跨层级数据传递原理
目录 前言provideinject 总结 前言 需要从父组件向子组件传递数据时,会使用 props。对于层级不深的父子组件可以通过 props 透传数据,但是当父子层级过深时,数据透传将会变得非常麻烦和难以维护。 而依赖注入则是为了解决 prop 逐级透传 的问…...
【Python深度学习】目标检测和语义分割的区别
在计算机视觉领域,语义分割和目标检测是两个关键的任务,它们都是对图像和视频进行分析,但它们之间存在着明显的区别。本文将通过图像示例,详细阐述语义分割和目标检测之间的差异。 一、基本概念 1.1 语义分割(Semantic…...
取消加考!自考专业调整,2026年起执行新计划!
就在2023年10月7日,广东省教育考试院发布《关于广东省高等教育自学考试专业调整有关事项的通知》,自学考试迎来新变化,本次专业调整政策性强,涉及面广,持续时间长,一起来看看具体说明~ 关于广东省高等教育自…...
项目串讲(后端)要讲哪些东西?
刚进入一家公司,leader说给你几天时间,对咱们的公司的项目熟悉熟悉,做一个串讲吧。我很慌,没有串讲过,啥也不知道,不知道该怎么写,不知道讲出来leader满不满意,这些都是我在串讲前的…...
区块链技术在供应链管理中的创新应用
区块链技术以其独特的不可篡改和透明性特点,正在逐步改变供应链管理的传统模式。本文将探讨区块链技术在供应链管理中的创新应用及其带来的效益。 区块链技术的出现为许多行业带来了创新的可能,其中之一就是供应链管理。通过区块链技术,企业可…...
tcp/ip协议2实现的插图,数据结构2 (9 - 章)
(20) 20 九章1 IP选项处理 ip_dooptions (21)...
嵌入式Linux裸机开发(六)EPIT 定时器
系列文章目录 文章目录 系列文章目录前言介绍配置过程前言 前面学的快崩溃了,这也太底层了,感觉学好至少得坚持一整年,我决定这节先把EPIT学了,下面把常见三种通信大概学一下,直接跳过其他的先学移植了,有些太多了内容。 介绍 EPIT(Enhanced Periodic Interrupt Timer…...
如何批量导出文件名?
如何批量导出文件名?在电商行业从事工作的一些同事可能经常会遇到这样的问题:需要将产品文件夹中的所有图片或产品名称导出到Excel工作表,在工作表中创建这些名称的超链接,并且可能会为每个产名称的后面填写一些相关信息ÿ…...
sort排序
后端返回字段,前端用sort进行正序排序 init() {this.formLoading true;GetAllGalleryTestLevelTypeInfos().then((res) > {res.data.sort((a,b)>{return a.serial_number-b.serial_number})this.data res.data;console.log( this.data," serial_number…...
缓存的力量:提升API性能和可扩展性
缓存是将频繁访问的数据或资源存储在临时存储位置(例如内存或磁盘)的过程,以提高检索速度并减少重复处理的需要。 缓存的好处 提高性能:缓存消除了每次从原始源检索数据的需要,从而提高了响应时间并减少了延迟。减少服务器负载:通…...
Llama-3.2V-11B-cot算法解析实战:图解卷积神经网络核心原理
Llama-3.2V-11B-cot算法解析实战:图解卷积神经网络核心原理 你是不是经常听到“卷积神经网络”这个词,感觉它既神秘又强大,但一看到那些复杂的数学公式和网络结构图就头疼?别担心,今天咱们就换个方式,用大…...
为什么Snap卸载Docker总卡在快照?揭秘自动备份机制与3种强制中断方案
为什么Snap卸载Docker总卡在快照?深度解析与实战解决方案 当你尝试卸载通过Snap安装的Docker时,是否遇到过进度条卡在"Save data of snap docker in automatic snapshot set #3"的情况?这种看似简单的卸载操作背后,隐藏…...
RK3588开发板USB转CAN踩坑实录:CH341成功驱动与PCAN内核编译全流程
RK3588开发板USB转CAN实战指南:CH341与PCAN驱动深度解析 当工业控制、车载电子或机器人系统需要扩展CAN总线接口时,RK3588开发板配合USB转CAN模块成为工程师的热门选择。本文将深入探讨两种经过验证的解决方案——CH341转CAN和PCAN模块,从硬件…...
用Python手搓一个简易飞行仿真器:从状态机到轨迹计算的保姆级教程
用Python手搓一个简易飞行仿真器:从状态机到轨迹计算的保姆级教程 飞行仿真技术听起来像是航空航天工程师的专属领域,但你知道吗?用Python和一些基础库,我们完全可以构建一个简化版的飞行仿真系统。本文将带你从零开始࿰…...
MTools开箱即用:5分钟在K8s部署Web版AI工具,图片音视频全能处理
MTools开箱即用:5分钟在K8s部署Web版AI工具,图片音视频全能处理 1. 为什么选择MTools Web版 MTools Web版是一款集成了图片处理、音视频编辑、AI智能工具和开发辅助功能的现代化工具套件。与传统的桌面软件不同,它可以直接在浏览器中运行&a…...
亚马逊/Shopee关键词排名高就一定好?你可能陷入了“数据幻觉”
关键词排名高只说明“看得见”,不代表“卖得动”,更不等于“值得投”。理论锚点信息经济学信号噪音理论:排名只是表层信号,可能混杂品牌词截流等无关信息。SEO 搜索意图分类:信息型搜索不等于交易型搜索。一、误区揭露…...
Mojo结构体直传Python内存视图:零序列化跨语言数据流实现(附GDB内存布局验证截图)
第一章:Mojo结构体直传Python内存视图:零序列化跨语言数据流实现(附GDB内存布局验证截图)Mojo 通过其底层 value 和 parameter 机制,允许结构体在不触发拷贝或序列化的情况下,直接暴露为 Python 的 memoryv…...
CYBER-VISION零号协议Markdown文档大师:替代Typora的智能写作体验
CYBER-VISION零号协议Markdown文档大师:替代Typora的智能写作体验 如果你和我一样,每天都要和Markdown文档打交道,那你肯定知道那种感觉:面对一个空白文档,脑子里有想法,但就是敲不出满意的句子࿱…...
Qwen2.5-14B-Instruct入门指南:像素剧本圣殿UI组件与剧本结构映射关系解析
Qwen2.5-14B-Instruct入门指南:像素剧本圣殿UI组件与剧本结构映射关系解析 1. 工具概览与核心价值 像素剧本圣殿(Pixel Script Temple)是一款基于Qwen2.5-14B-Instruct大模型深度优化的专业剧本创作工具。它将AI强大的文本生成能力与独特的…...
经典算法实现:二分查找、全排列与子集生成
在算法学习中,二分查找、全排列、子集生成是非常基础且重要的内容。本文将结合 C 代码,详细讲解这三种经典算法的实现思路与核心逻辑,帮助大家理解算法的底层原理和代码落地方式。一、二分查找(Binary Search)二分查找…...
