C#从入门到精通(3)

       

目录

第九章  窗体

(1)From窗体   

(2)MDI窗体

(3)继承窗体

第十章 控件

(1)控件常用操作

(2)Label控件

(3)Button控件

(4)TextBox控件

(5)RichTextBox控件

(6)ComboBox控件

(7)CheckBox控件

(8)RadioButton控件

(9)NumericUpDowm控件

(10)ListBox控件

(11)Panel控件

(12)GroupBox控件

(13)TabControl控件

(14)MenuStrip控件

(15)ToolStrip控件

(16)StatusStrip控件

(17)ImageList组件

(18)ListView控件

(19)TreeView控件

(20)DateTimePicker控件

(21)MonthCalender控件

(22)ErrorProvider控件

(23)HelpProvider控件

(24)Timer组件

(25)ProgressBar控件


 本文主要介绍C#的界面开发。观看的视频教程——C#从入门到精通(第6版)_哔哩哔哩_bilibili

        如有时间,推荐观看视频学习。本文主要对其进行总结。

第九章  窗体

        窗体是向用户显示信息的可视化界面。也是windows应用程序的基本单元。每个窗体都有自己的特征,可以通过编程来进行设置。

        窗体一般通过可视化的窗体设计器来进行设计。

(1)From窗体   

1.添加与删除窗体

        添加:右键单击项目,选择添加,选择添加窗体。

        删除:右键单击要删除的窗体,选择删除。

 2.设置启动窗口

        一个项目中有多个窗口,在项目运行时要设置启动窗口。需要在program.cs文件中改变Run方法的参数来设计启动窗口。  

3.设置窗体的属性

窗体图标Icon属性
窗体标题栏FromBorderStyle属性
窗体显示位置StartPositon属性
窗体大小Size属性
窗体背景图片

BackgroundImage属性

控制窗体在最上边TopMost属性

4.窗体常用的方法

        show方法——显示窗体。

        Hide方法——隐藏窗体。

        Close方法——关闭窗体

5.窗体常用的事件

        Load事件——窗体加载时触发。

        FormClosing事件——窗体关闭时触发。

(2)MDI窗体

        多文档界面。用于显示多个文档,每个文档显示在各自的窗口中。MDI窗体通常包换子菜单的窗口菜单,用于在窗口或文档之间进行切换。

1.设置MDI窗体

        MDI窗体中有父窗体和子窗体。

        父窗体设置:在属性中,将IsMdiContainer属性设置为True即可。

        子窗体设置:通过设置MdiParent属性来确定子窗体。(属性中没有这个选项,需要通过代码设置)示例。

   Form2 form2 = new Form2();form2.Show();form2.MdiParent = this;

2.排列MDI子窗体

        通过使用LayoutMdi方法来排列多文档界面父窗体中的子窗体。例如

  LayoutMdi(MdiLayout.TileHorizontal); //水平排列LayoutMdi(MdiLayout.TileVertical);//垂直排列
(3)继承窗体

     将父类窗体的功能继承到子类,提高代码复用率。减少重复代码的编写。

创建继承窗体的两种方法:

        1.修改继承类。在窗体代码中修改窗体继承的类。

        2.使用继承选取器。在添加新建项中选择继承的窗体,选择要继承的对象。(需要先编译一下)。

注意,为从一个窗体继承,包换该窗体的文件或命名空间必须已经编译成可执行文件DLL。   

修改继承窗体的属性

        在父窗体中找到Modifiers属性,修改为public。和类的继承很像(把一个窗口当成一个类就行了)。

第十章 控件

        控件:是带有可视化表示形式的组件。其基类是Control类。

(1)控件常用操作

        添加控件

        1.打开工具箱,选择要添加的控件,拖动到窗口中。

        2.通过代码添加。示例

  TextBox textBox = new TextBox();textBox.Location = new Point(10,10);this.Controls.Add(textBox);

        对齐控件——选中控件,点击格式中选择要对齐的方式。

        删除控件——选中控件,右击选择删除。

(2)Label控件

        标签控件,用于显示用户不能进行编辑的文本。标识窗体上的对象等。

(3)Button控件

        按钮控件,允许用户通过单击执行操作。既可以显示文本,也可以显示图像。

        常用属性:Text属性用来设置控件的文本。Click事件用来指定Button按钮点击时执行的操作。

(4)TextBox控件

        文本框控件,用于获取用户输入的数据或显示文本。通常用于可编辑文本,也可使其称为只读文本。

        常用属性:

        ReadOnly属性——创建只读文本框。

        PasswordChar属性——创建密码文本框。

        Multiline属性——创建多行文本框。

        TextChanged事件——响应文本框的文本更改事件。

(5)RichTextBox控件

        有格式文本框控件,用于显示、输入和操作带有格式的文本。比如可以实现显示字体、颜色、链接、从文件加载文本及嵌入的图像、撤销和重复编辑操作以及查找指定的字符等功能。

        常用属性:

        ScrollBars属性——显示滚动条。

        SelectionFont属性和SelectionColor属性——设置字体属性。

        Text属性和LinkClicked事件——显示为超链接样式。

        SelectionBullet或SelectionIndent属性——设置段落格式。

示例

    richTextBox1.SelectionFont = new Font("宋体", 12, FontStyle.Bold);richTextBox1.SelectionColor = Color.Red;richTextBox1.Text = "http://baidu.com"; //超链接System.Diagnostics.Process.Start(e.LinkText);richTextBox1.SelectionBullet = true; //开头原点richTextBox1.SelectionIndent = 50;// 开头间隔
(6)ComboBox控件

        下拉组合框控件,主要用于在下拉组合框中显示数据,该控件主要有两部分组成。第一部分是允许用户输入列表项的文本框。第二部分是一个列表框,显示一个选项列表,用户可以从中选择项。

        常用属性:

        Item属性——用于添加下拉框选择项。

        DropDownStyle属性——设置下拉组合框。

        SelectedIndexChanged事件——响应下拉组合框的选项值更改事件。

(7)CheckBox控件

        复选框控件,用来表示是否选取了某个选项条件,常用于为用户提供具有 是/否的选项。

        常用属性:

        CheckState属性——判断复选框是否选中。

        CheckedChanged事件——响应复选框的选中状态更改事件。

(8)RadioButton控件

        单选按钮事件,为用户提供由两个或多个互斥选项组层的选项集。当用户选中某个单选按钮时,同一组的其他单选按钮不能选。

        常用属性:

        Checked属性——判断单选按钮是否选中。

        CheckedChanged属性——响应单选按钮选中状态更改事件。

(9)NumericUpDowm控件

        数字选择控件,常用于数字的选择。例如选择页码等。

        常用属性:

        Value属性——获取选择的值。

        DecimalPlaces属性——显示小数点后几位。

(10)ListBox控件

        列表控件,它主要用于显示一个列表,用户可以从中选择一项或多项,超出总数,控件会自动添加滚动条。

        常用属性:

        Items属性的Add方法和Remove方法——添加和移除项。

        HorizontalScrollbar属性和ScrollAlwaysVisable属性—— 总显示滚动条。

        SelectionMode属性——选择多个项。

(11)Panel控件

        作用:1.分组窗体中的控件。2.批量控制窗体中的控件的显示与隐藏。

        常用属性:

        Visable属性——用来修改是否显示。

(12)GroupBox控件

        分组框控件,主要为其他控件提供分组,并且按照控件的分组来显示细分窗体的功能。显示边框和标题。

        常用属性:

        Text属性——设置分组框的标题。

(13)TabControl控件

        进行选择的控件,其中可以包含子控件。

        常用操作:

        改变选项卡的显示样式——TabPage对象和ImageList控件结合。

        选项卡添加控件——Controls对象的Add()方法。

        添加、删除选项卡——TabPage属性的Add()方法与Remove方法。

        移除所有选项卡——TabPage属性的Clear()方法。

示例

 tabControl1.ImageList = imageList1; //设置图标tabPage1.ImageIndex = 0;tabPage2.ImageIndex = 1;Button button = new Button(); //添加子控件button.Text = "OK";tabPage2.Controls.Add(button);TabPage tb = new TabPage("新增选项卡"); //添加选项卡tabControl1.Controls.Add(tb);tabControl1.Controls.Remove(tb);//删除选项卡tabControl1.TabPages.Clear(); //清空选项卡
(14)MenuStrip控件

        菜单控件,主要用来设计程序的菜单栏。

(15)ToolStrip控件

        工具栏控件,使用该控件可以创建具有Office、WindowsXP或自定义的外观和行为工具栏及其他用户界面元素。

(16)StatusStrip控件

        状态栏控件,通常放置在窗体的最底部,用于显示窗体上的一些对象的相关信息。或显示应用程序的信息。

(17)ImageList组件

        图片存储组件,主要用于存储图片资源,然后在控件上显示出来,简化了对图片的管理。

        主要属性为Images,关联控件将要使用的图片。图片通过键值或索引值来访问,并且其所有图片将压缩至相同大小显示。由ImageSize属性设置。将较大图片将压缩至适当的尺寸。

        常用属性:

        ColorDepth——获取图像列表的颜色深度。

        Images——获取此图像列表的ImagesList.ImageCollection。

        ImageSize——获取或设置图像列表中的图像大小。

        ImageStream——获取此图像列表关联的ImageListStreamer。

(18)ListView控件

        列表视图控件,它主要用于显示带图标的项列表,其中可以显示大图标、小图标和数据。

        常用方法:

        添加项——Items属性的Add方法。

        移除项——Items属性的Remove方法或Clear方法。

        选择项——Selected属性。

        添加图标——SmallImageList、LargeImageList或StateImageList属性。

        启动平铺视图——View属性。

        项分组——Group属性。

示例:

     listView1.Items[0].Group = listView1.Groups[0];//第一项分到第一组listView1.Items[1].Group = listView1.Groups[1];//第二项分到第二组
(19)TreeView控件

        树控件,可以为用户显示节点层次结构,而每个节点又可以包含子节点,包含子节点的节点叫父节点。

        常用方法:

        添加和删除树节点——Nodes属性的Add、Remove方法。

        获取选中节点——AfterSelect事件、Nodes.Text属性。

        为节点设置图标——ImageList、ImageIndex和SelectedImageIndex属性。

(20)DateTimePicker控件

        日期控件。用于显示时间。

        常用属性:

        Foremat属性——设置控件显示日期时间格式。

        CustomFormat属性——自定义显示格式。

        Value属性——获取选中的日期。

示例

   dateTimePicker1.Format = DateTimePickerFormat.Custom;dateTimePicker1.CustomFormat = "MMMM dd,yyyy-dddd";label1.Text = dateTimePicker1.Value.ToShortDateString();
(21)MonthCalender控件

        月历控件,用于显示日期。

        常用属性:

        ShowWeekNumbers——设置显示外观。

        CalendarDimensions——同时显示多个月份。

        SelectionStart、SelectionEnd——选择日期范围的开始日期、结束日期。(只能选择一周之内的日期范围)。

(22)ErrorProvider控件

        在不打扰用户的情况下向用户显示错误发生。

        常用方法:

        SetError()方法——用于Validating事件中。

(23)HelpProvider控件

        调用帮助文件。

        常用属性和方法:

        HelpNamespace属性——指定帮助文件名。(放在项目debug下可以用相对路径,放在其他位置要用绝对路径)

        SetShowHelp()方法——设置是否显示帮助信息。

(24)Timer组件

        计数器组件,用于定期的引发事件。时间间隔长度有Interval属性定义。其属性值以毫秒为单位。启用该组件,每隔一个时间间隔引发一次Tick时间爱你,开发人员可以再Tick事件添加要执行的代码。

        常用属性和方法:

        Enabled属性——获取或设置计时器是否正在运行。

        Interval属性——获取或设置触发Tick事件的时间间隔。

        Start方法——启动定时器。

        End方法——关闭定时器。

        Tick时间——触发的事件。

(25)ProgressBar控件

        进度条,指示工作的进度。帮助用户观察进度。

        常用的属性:

        Value——进度条进度值。

        Minimum——进度条最小值。

        Maximum——进度条的最大值。

        Step——进度条的步长。

        PerfromStep——每次增加一个步长。

本文主要介绍C#的界面开发。更多详细内容请观看视频。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过TIM+DMA Burst 实现STM32输出变频且不同脉冲数量的PWM波形

Burst介绍: DMA控制器可以生成单次传输或增量突发传输,传输的节拍数为4、8或16。 为了确保数据一致性,构成突发传输的每组传输都是不可分割的:AHB传输被锁定,AHB总线矩阵的仲裁器在突发传输序列期间不会撤销DMA主设备…

GaussDB数据库表设计与性能优化实践

GaussDB分布式数据库表设计与性能优化实践 引言 在金融、电信、物联网等大数据场景下,GaussDB作为华为推出的高性能分布式数据库,凭借其创新的架构设计和智能优化能力,已成为企业核心业务系统的重要选择。本文深入探讨GaussDB分布式架构下的…

npm install 卡在创建项目:sill idealTree buildDeps

参考: https://blog.csdn.net/PengXing_Huang/article/details/136460133 或者再执行 npm install -g cnpm --registryhttps://registry.npm.taobao.org 或者换梯子

【MySQL】从零开始:掌握MySQL数据库的核心概念(五)

由于我的无知,我对生存方式只有一个非常普通的信条:不许后悔。 前言 这是我自己学习mysql数据库的第五篇博客总结。后期我会继续把mysql数据库学习笔记开源至博客上。 上一期笔记是关于mysql数据库的增删查改,没看的同学可以过去看看&#xf…

抖音矩阵系统源码开发与部署技巧!短视频矩阵源码搭建部署

在短视频蓬勃发展的时代,短视频矩阵已成为内容创作者和企业扩大影响力、提升传播效果的重要策略。而一个高效、易用的前端系统对于短视频矩阵的成功运营至关重要。本文将深入探讨短视频矩阵前端源码搭建的技术细节,为开发者提供全面的技术指导。 一、技…

ESP32S3 WIFI 实现TCP服务器和静态IP

一、 TCP服务器代码 代码由station_example_main的官方例程修改 /* WiFi station ExampleThis example code is in the Public Domain (or CC0 licensed, at your option.)Unless required by applicable law or agreed to in writing, thissoftware is distributed on an &q…

物质与空:边界中的确定性,虚无中的无限可能——跨学科视角下的存在本质探析

一、哲学框架:二元性与超越性 1. 物质的边界性:有限世界的确定性法则 在人类认知的起点,物质以"非0即1"的绝对姿态显现。一块石头、一滴水、乃至微观粒子,都以明确的边界定义自身存在。这种确定性映射着: 亚…

linux常用指令(10)

那么我们就继续来学习linux指令的使用,来了解搜索查找类的相关指令,话不多说,来看. 搜索查找类 1.find指令 find将从指定目录向下遍历其各个子目录,将满足条件的条件或目录显示在终端 基本语法 find[搜索范围][项项] 选项说明 -name<查询方式> 按照指定的文件名查找…

AWTK-WEB 快速入门(6) - JS WebSocket 应用程序

WebSocket 可以实现双向通信&#xff0c;适合实时通信场景。本文介绍一下使用 Javacript 语言开发 AWTK-WEB 应用程序&#xff0c;并用 WebSocket 与服务器通讯。 用 AWTK Designer 新建一个应用程序 先安装 AWTK Designer&#xff1a; https://awtk.zlg.cn/web/index.html …

机器学习——集成学习框架(GBDT、XGBoost、LightGBM、CatBoost)、调参方法

一、集成学习框架 对训练样本较少的结构化数据领域&#xff0c;Boosting算法仍然是常用项 XGBoost、CatBoost和LightGBM都是以决策树为基础的集成学习框架 三个学习框架的发展是&#xff1a;XGBoost是在GBDT的基础上优化而来&#xff0c;CatBoost和LightGBM是在XGBoost的基础上…

Leetcode 最长递增子序列的个数

java solution class Solution {public int findNumberOfLIS(int[] nums) {//边界情况处理int n nums.length;if(n < 1) return n;//然后我们创建2个数组, 分别是count数组和length数组,//length[i]的含义是以i结尾的子数组的最长递增子序列长度//count[i]的含义是以i结尾…

原型验证后客户推翻原有需求,如何止损

原型验证后客户推翻原有需求时止损的有效方法包括&#xff1a;迅速评估影响范围、立即开展沟通确认、调整项目计划和资源配置、更新变更管理流程、协商成本分担机制。其中&#xff0c;迅速评估影响范围是关键&#xff0c;项目团队必须立即明确此次变更的具体影响&#xff0c;包…

在rockylinux9.4安装mongodb报错:缺少:libcrypto.so.10文件库

问题点&#xff1a; rockylinux9.4系统环境报错&#xff1a; ./mongod: error while loading shared libraries: libcrypto.so.10: cannot open shared object file: No such file or directory 解决方法&#xff1a; Ps&#xff1a;解压之后&#xff0c;检查mongodb的依赖环境…

如何应对竞品分析不足导致的方案偏差

应对竞品分析不足导致方案偏差的有效措施包括&#xff1a;深入竞品调研、建立定期竞品分析机制、明确竞品分析维度、引入专业竞品分析工具、优化内部沟通反馈机制。其中&#xff0c;深入竞品调研尤为重要。通过全面深入地分析竞争对手的产品策略、市场定位及用户反馈&#xff0…

基于Python+LanceDB实战向量搜索

本篇实战演示向量搜索的实现和示例。 预期效果 给出一个查询的字符串&#xff0c;通过向量搜索&#xff0c;在下面三个语句中搜索出关联性最大的那句。 "熊猫是中国的国宝&#xff0c;主要栖息在四川山区。","长城是古代中国建造的军事防御工事&#xff0c;全…

在 Linux(Ubuntu / CentOS 7)上快速搭建我的世界 MineCraft 服务器,并实现远程联机,详细教程

Linux 部署 MineCraft 服务器 详细教程&#xff08;丐版&#xff0c;无需云服务器&#xff09; 一、虚拟机 Ubuntu 部署二、下载 Minecraft 服务端三、安装 JRE 21四、安装 MCS manager 面板五、搭建服务器六、本地测试连接七、下载樱花&#xff0c;实现内网穿透&#xff0c;邀…

【科研绘图系列】R语言绘制重点物种进化树图(taxa phylogenetic tree)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据数据预处理画图输出图片系统信息介绍 【科研绘图系列】R语言绘制重点物种进化树图(taxa phylogenetic tree) 加载R包 library(tidyverse) library(ape…

浏览器渲染过程

浏览器的渲染过程是多个线程、进程和阶段的复杂编排&#xff0c;它将原始的 HTML、CSS 和 JavaScript 转换为屏幕上的交互像素。 你在浏览器中输入一个 URL 并按下回车键 网站在你的屏幕上呈现出来 注意&#xff1a;本文中&#xff0c;将使用 “客户端&#xff08;client&am…

华鲲振宇天工TG225 B1国产服务器试装openEuler22.03 -SP4系统

今天测试了一下在华鲲振宇公司的天工TG225 B1国产服务器上进行openEuler22.03 -SP4操作系统的试装&#xff0c;本文记录整个测试过程。 一、服务器信息 1、服务器型号 Huakun TG225 B1 (D) 2、登录IPMI帐户信息 初始用户名Tech.ON 密码TianGong8000 二、磁盘RAID配置 测试…

Qemu-STM32(十二):STM32F103 框架代码添加

简介 本系列博客主要描述了STMF103的qemu模拟器实现&#xff0c;进行该项目的原因有两点: 作者在高铁上&#xff0c;想在STM32F103上验证一个软件框架时&#xff0c;如果此时掏出开发板&#xff0c;然后接一堆的线&#xff0c;旁边的人估计会投来异样的目光&#xff0c;特别是…