C# InitializeComponent()方法案例详解

在每一个窗体生成的时候,都会针对于当前的窗体定义InitializeComponent()方法,该方法实际上是由系统生成的对于窗体界面的定义方法。

//位于.cs文件之中的InitializeComponent()方法
public Form011() {
    InitializeComponent();
}

在每一个Form文件建立后,都会同时产生程序代码文件.CS文件,以及与之相匹配的.Designer.CS文件,业务逻辑以及事件方法等被编写在.CS文件之中,而界面设计规则被封装在.Designer.CS文件里,下面代码为.Designer.CS文件的系统自动生成的脚本代码。

namespace Example_FormTest
{
partial class frmStudent
{
///
/// 必需的设计器变量。
///
private System.ComponentModel.IContainer components = null;
///
/// 清理所有正在使用的资源。
///
/// 如果应释放托管资源,为 true;否则为 false。
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows 窗体设计器生成的代码
///
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
///
private void InitializeComponent()
{
this.SuspendLayout();
//
// frmStudent
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(292, 273);
this.Name = “frmStudent”;
this.Text = “学生信息”;
this.MouseClick += new System.Windows.Forms.MouseEventHandler(this.frmStudent_MouseClick);
this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.frmStudent_KeyPress);
this.ResumeLayout(false);
}
#endregion
}
}

在代码之中,可以很容易发现InitializeComponent()方法和Dispose()方法,前者为界面设计的变现内容,后者为表单释放系统资源时候执行编码。

InitializeComponent()方法反映了窗体设计器中窗体和控件的属性。通常不会在世界上个文件中修改代码。如果更改InitializeComponent()方法中的相关属性参数,在窗体设计器界面上也会显示出来。

我们发现建一个c#窗体项目,在Form1.cs和Form1.Designer.cs里分别有一个InitializeComponent()函数
Form1.Designer.cs 里的是定义 (函数名后面有大括号包含定义内容)
Form1.cs 里的是调用 (函数名后面分号结尾)
partial 表示以下创建的是分布类代码
也就是说 一个类的定义代码 可以写在两个不同的页面
Form1.cs和Form1.Designer.cs
注意:InitializeComponent()方法写在前面和后面是有区别的。InitializeComponent()方法是用来初始化窗体组件的,在InitializeComponent之前,窗体的各个控件还没有进行初始化,比如说窗体上有一个TextBoxUserName,在InitializeComponent之前它还只是一个TextBox类型的变量而已,如果在InitializeComponent之前调用这个TextBox的属性或方法,就会出错。再比如说你拖上取一个TextBox,它放在Form的位置,TextBox的一些属性。包括new 这个TextBox都放在那个函数里面处理的。
我们可以看一下Form.Designer.cs,在那里找到InitializeComponent方法,您会发现窗体对象的初始化都是在那里做的。

到此这篇关于C# InitializeComponent()方法案例详解的文章就介绍到这了,更多相关C# InitializeComponent()方法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C#精确到纳秒级别的计时器类实现代码

    主要用到了win32里面的QueryPerformanceCounter和QueryPerformanceFrequency两个函数 文档链接:https://docs.microsoft.com/zh-cn/windows/win32/api/profileapi/nf-profileapi-queryperformancecounter class NanoSecondTimer { [DllImport("Kernel32.dll")] private static extern

  • 使用 C# 下载文件的多种方法小结

    目录 简单下载 异步下载 下载文件的同时向服务器发送自定义请求头 如何解决下载文件不完整的问题 使用 Downloader 进行 HTTP 多线程下载 下载非 HTTP 协议的文件 文件下载是一个软件开发中的常见需求.本文从最简单的下载方式开始步步递进,讲述了文件下载过程中的常见问题并给出了解决方案.并展示了如何使用多线程提升 HTTP 的下载速度以及调用 aria2 实现非 HTTP 协议的文件下载. 简单下载 在 .NET 程序中下载文件最简单的方式就是使用 WebClient 的 Down

  • C#圆形头像框制作并从数据库读取

    现在只要是有关头像的框基本都是圆形的了,C#提供的PictureBox控键默认情况下是方形的非常大的影响美观 PictureBox默认情况下 比起上面的还是有一点不太好看的- 使用C#提供的类进行圆形: 工具箱拉出PictureBox 设置图片的显示模式为ZOOM 特别注意: 框的比例必须为一样不然会变椭圆的 窗体加载时: pictureBox1.Image = Image.FromFile(@"C:\Users\Administrator\Desktop\1.png"); 为了方便演

  • C#中efcore-ShardingCore呈现“完美”分表

    目录 efcore支持情况 数据库支持情况 如何开始使用 自定义分表键,自定义分表规则 默认路由 动态添加分表信息 支持select,join,group by等连表聚合函数 分页 无感知使用 读写分离的支持 如果您对分表有以下痛点那么不妨试试我这边开源的框架sharding-core,是否需要无感知使用分表组件,是否需要支持abp,是否需要支持自定义分表规则,是否需要支持自定义分表键,是否需要支持特定的efcore版本,是否希望框架不带任何三方框架干净,是否需要支持读写分离,是否需要动态添加表

  • C# NullReferenceException解决案例讲解

    最近一直在写c#的时候一直遇到这个报错,看的我心烦...准备记下来以备后续只需. 参考博客: https://segmentfault.com/a/1190000012609600 一般情况下,遇到这种错误是因为程序代码正在试图访问一个null的引用类型的实体而抛出异常.可能的原因.. 一.未实例化引用类型实体 比如声明以后,却不实例化 using System; using System.Collections.Generic; namespace Demo { class Program {

  • C# InitializeComponent()方法案例详解

    在每一个窗体生成的时候,都会针对于当前的窗体定义InitializeComponent()方法,该方法实际上是由系统生成的对于窗体界面的定义方法. //位于.cs文件之中的InitializeComponent()方法 public Form011() { InitializeComponent(); } 在每一个Form文件建立后,都会同时产生程序代码文件.CS文件,以及与之相匹配的.Designer.CS文件,业务逻辑以及事件方法等被编写在.CS文件之中,而界面设计规则被封装在.Design

  • C# 控件属性和InitializeComponent()关系案例详解

    namespace Test22 { partial class Form1 { /// <summary> /// 必需的设计器变量. /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// 清理所有正在使用的资源. /// </summary> /// <param name="disposing"&

  • spring security在分布式项目下的配置方法(案例详解)

    分布式项目和传统项目的区别就是,分布式项目有多个服务,每一个服务仅仅只实现一套系统中一个或几个功能,所有的服务组合在一起才能实现系统的完整功能.这会产生一个问题,多个服务之间session不能共享,你在其中一个服务中登录了,登录信息保存在这个服务的session中,别的服务不知道啊,所以你访问别的服务还得在重新登录一次,对用户十分不友好.为了解决这个问题,于是就产生了单点登录: **jwt单点登录:**就是用户在登录服务登录成功后,登录服务会产生向前端响应一个token(令牌),以后用户再访问系

  • HTML form表单提交方法案例详解

    form表单提交方式总结一下: 一.利用submit按钮实现提交,当点击submit按钮时,触发onclick事件,由JavaScript里函数判断输入内容是否为空,如果为空,返回false, 不提交,如果不为空,提交到由action指定的地址. <script type="text/javascript"> function check(form) { if(form.userId.value=='') { alert("请输入用户帐号!"); for

  • Android ExpandableListView使用方法案例详解

    目录 一.前言 二.实现的功能 三.具体代码 1.主xml代码 2.父布局xml代码 3.子布局xml代码 4.主activity代码 5.adapter代码 一.前言   "好记性不如烂笔头",再次验证了这句话是真的很有道理啊,一个月前看了一下ExpandableListView的使用,今天再看居然忘了这个是干啥的了,今天就详细讲解一下ExpandableListView的使用方法,感觉对于二级条目显示功能都可以实现. 二.实现的功能 1.可实现二级列表条目显示功能,具体包括可自定义

  • C++ random_shuffle()方法案例详解

    假设你需要指定范围内的随机数,传统的方法是使用ANSI C的函数random(),然后格式化结果以便结果是落在指定的范围内.但是,使用这个方法至少有两个缺点. 首先,做格式化时,结果常常是扭曲的,所以得不到正确的随机数(如某些数的出现频率要高于其它数) 其次,random()只支持整型数:不能用它来产生随机字符,浮点数,字符串或数据库中的记录. 对于以上的两个问题,C++中提供了更好的解决方法,那就是random_shuffle()算法.不要着急,下面我就会告诉你如何用这种算法来产生不同类型的随

  • sql ROW_NUMBER()与OVER()方法案例详解

    语法格式:row_number() over(partition by 分组列 order by 排序列 desc) row_number() over()分组排序功能: 在使用 row_number() over()函数时候,over()里头的分组以及排序的执行晚于 where .group by.  order by 的执行. 例一: 表数据: create table TEST_ROW_NUMBER_OVER( id varchar(10) not null, name varchar(1

  • C# DateTime.Compare()方法案例详解

    C#中的DateTime.Compare()方法用于比较两个DateTime实例.它返回一个整数值, <0-如果date1早于date2 0-如果date1与date2相同 > 0-如果date1晚于date2 语法 以下是语法- public static int Compare (DateTime d1, DateTime d2); 上面的d1和d2是要比较的两个日期. 示例 现在让我们看一个实现DateTime.Compare()方法的示例- using System; public c

  • HTML DOM setInterval和clearInterval方法案例详解

    在javascript编程中,setInterval可以帮助我们实现一个定时器的功能,能够让我们定时执行某一项操作,如果不需要继续执行了,我们只需要调用clearInterval函数,清除定时器即可. 这里要重点说的是清除定时器的时机,我们一般是需要进行一个条件判断,比如 var count=5,我们定时执行count--操作,当count==0的时候,清除定时器,一般情况下,我们的代码是这样写的. 这段代码,逻辑上没有什么问题, 就是当count==0的时候,我们清除定时器.我们运行这段代码,

  • C# DateTime日期比较方法案例详解

    之前做到日期时间的时候,有许多格式问题和日期时间比较问题,以及相关条件约束,因为不熟悉这个,浪费许多时间,查找相关资料,记录,以作备用. 1. Convert.ToDateTime       使用的是Windows控制模版中对日期格式的定义,可以使用Convert.ToDateTime("12-02-02").ToString("YYYY-MM-DD "); 或者Convert.ToDateTime("12-02-02").ToString(&

随机推荐