
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
通过重写控件OnLayout方法,手动编写控件排布逻辑,实现完全自定义的布局规则。自由度最高,但需要掌握WinForm控件绘制周期、坐标计算逻辑,开发成本高,日常项目极少使用,仅作了解即可。布局控件特点适用场景FlowLayoutPanel 流式布局自动排列、自动换行、方向可调、无固定行列不定数量按钮、图片列表、标签栏TableLayoutPanel 网格布局固定行列、百分比均分、单元格精准定位表
控件(Control):有界面、可拖拽、可见元素(Button/TextBox)组件(Component):无界面、后台运行、不可见元素(Timer/MessageBox)本案例:手动封装一个属于自己的定时器组件,自带事件、开关、间隔属性。namespace _1自定义控件// 继承Component:无界面自定义组件// 系统定时器对象// 自定义定时器触发事件(对外暴露)// 默认构造函数//
继承系统原有控件,例如。特点:保留原有所有功能,只拓展新增样式、逻辑。直接继承Control父类,无任何自带样式,所有界面全部手动绘制。报错处理否则项目会编译报错。修改继承类:将默认继承改为Control注释报错代码:注释掉 AutoScaleMode 相关代码重写 OnPaint 方法:手动绘制所有界面图形、文字开启双缓存:解决界面刷新闪烁问题自定义公开属性:暴露文本、样式属性,供外部窗体设置n
继承 UserControl、自带可视化界面,属性绑定文本框,搭配全套设计特性namespace _7_自定义控件常用的特性/// 账号属性:绑定文本框,配置全套设计器特性[Browsable(true)] // 属性面板可见[Category("佛得角")] // 自定义分组[Description("账号的内容")] // 属性描述说明[DefaultValue("佛得角")] // 默认标记
创建类,继承 Attribute 基类,类名建议以 Attribute 结尾添加特性,限制特性使用规则定义属性、构造函数,用于传参存储自定义信息将自定义特性标记在 类/方法/字段/属性 上方通过反射读取特性存储的信息namespace _6自定义特性// 限制:可标记类、方法,允许多次使用,不被继承// 自定义存储字段set;set;set;set;// 构造函数传参赋值namespace _6自
1个字节=1Byte(字节)=8bit(位)8位表示数字的范围0-2的8次方-1 = 0-255。int 整数4字节=4*8b=32位 int属于有符号的整型,包含负数和正数 0。3 多个单词的利用小驼峰进行命名 例如年龄的变量:age ,学号:studentID,(小驼峰:多个单词,第一个单词首字母小写,其余单词首字母大写)//声明一个整型的年龄 int:整型。byte 字节类型也可以表示数字1
int.TryParse( 要转换的数据, 转换成功之后的数据) result 就是转换之后的数据。例如 打碗鸡蛋面(10块钱) = 一晚鸡蛋面 int1.ToString() = "123"string str = "123.0" // 不可以,带了小数点就是实数。//Convert.ToInt16() 转成16位整型,//Convert.ToInt32() 转成int类型。string str
& 并且,会造成短路(如果一个条件为false 另外一个就不走了)T&&T=TT&&F=FF&&T=FF&&F=F。& 与:(如果一个条件为false 另外一个正常走)T&T=TT&F=FF&T=FF&F=F。|| 或者 会造成短路T||T=TT||F=TF||T=TF||F=F。| 或 :T|T=TT|F=TF|T=TF|F=F。格式:比较表达式?
for循环核心:三要素(初始化、循环条件、迭代)集中,适合明确知道循环次数的场景;执行顺序:初始化 → 判断条件 → 执行循环体 → 迭代 → 重复判断;核心应用:字符串、数组的遍历,精准控制循环次数的场景;避坑关键:注意分号使用、索引范围、迭代表达式设置,避免死循环和索引报错;与while/do...while区别:for循环三要素集中,维护更简洁;while/do...while更适合循环次数
C#中数据类型分为值类型(如int、double、bool等)和引用类型(如string),两者对null的支持不同:值类型:默认只能表示自身范围内的数据(如int只能表示正数、负数、0),不能表示null(null表示“无值”);引用类型:可以表示null(如string可赋值为null,表示字符串无值)。扩大值类型的表示范围,让值类型不仅能表示自身正常范围的数据,还能表示null(无值)。在值







