initializecomponent C# 怎样执行 InitializeComponent() 下面的函数
你是否曾想过,initializecomponent和C# 怎样执行 InitializeComponent() 下面的函数之间是否存在联系?在本文中,小编将为您探索它们之间的关系,带您领略新的视角和见解。
c# 调用控件出现t.InvalidActiveXStateException
用户控件里,直接调用即可,参考如下:
usercontrol.ascx.cs中的处理:
1.定义public的事件委托,如clickeventhandler;
2.在usercontrol类中声明事件,如click;
3.在usercontrol类中定义引发事件的方法,如onclick()方法;
4.在usercontrol类的相关方法中调用引发事件的方法,如在button_click()中调用onclick()。
包含usercontrol的页面cs文件中的处理:
1. initializecomponent()中增加事件处理程序,采用findcontrol方法找到usercontrol;
2.定义事件处理方法,在该方法中处理usercontrol的事件,如usercontrol_clicked()。
c#中代码写在initializecomponent前面和后面有区别吗
您好,
这肯定是有区别的,InitializeComponent方法是用来初始化窗体组件的,在InitializeComponent之前,窗体的各个控件还没有进行初始化,比如说窗体上有一个TextBoxUserName,在InitializeComponent之前它还只是一个TextBox类型的变量而已,如果您在InitializeComponent之前调用这个TextBox的属性或方法,就会出错。
您可以看一下Form.Designer.cs,在那里找到InitializeComponent方法,您会发现窗体对象的初始化都是在那里做的。
C# 怎样执行 InitializeComponent() 下面的函数
在每一个窗体生成的时候,都会针对于当前的窗体定义InitializeComponent()方法,该方法实际上是由系统生成的对于窗体界面的定义方法。
//位于.cs文件之中的InitializeComponent()方法
public Form011()
{
InitializeComponent();
}
在
每一个Form文件建立后,都会同时产生程序代码文件.CS文件,以及与之相匹配的.Designer.CS文件,业务逻辑以及事件方法等被编写在.CS
文件之中,而界面设计规则被封装在.Designer.CS文件里,下面代码为.Designer.CS文件的系统自动生成的脚本代码。
namespace Example_FormTest
{
partial class frmStudent
{
///<summary>
///必需的设计器变量。
///</summary>
private System.ComponentModel.IContainer components= null;
///<summary>
///清理所有正在使用的资源。
///</summary>
///<param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if(disposing&&(components!= null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows窗体设计器生成的代码
///<summary>
///设计器支持所需的方法-不要
///使用代码编辑器修改此方法的内容。
///</summary>
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# MainWindow() 与MainWindow_Loaded()区别
简单来说:先调用构造函数MainWindow(),在窗体加载时才会引发MainWindow_Loaded()事件
WinForm中的 Form_Load函数和他的构造函数 public Form()有区别:
(1): public Form():程序入口,它的InitializeComponent()
做了许多初始化的工作,所以Load才能成为一个事件,InitializeComponent为你的程序作了必要的初始化工作
(2) Form_Load:装载窗口事件,是窗体启动时触发的事件
总的来讲:
程序先执行InitializeComponent();后执行Form1_Load,InitializeComponent是进行一系列的初始化,Form1_Load是在窗体装载时发生的一个事件。一般写程序你把自己要初始化的东东可以放在Form1_Load中,当然也可以在InitializeComponent中,那就要重载InitializeComponent了。
public Form是类的构造函数,负责对类成员进行初始化工作。比如所有控件的创建、指定大小、位置等等。习惯上构造函数会调用InitializeComponent来实现窗体的初始化工作(初始化为设计模式中指定的状态)。
Form_Load是类的自定义方法,用来响应form的Load事件,该事件在窗体初始化完毕(包括所有控件初始化完毕),并且尚未显示的时候触发
Form()是窗体类的构造方法,有来初始化类的字段属性(其中包括它拥有控件类),和其他构造方法一样他是一个窗体实例产生时最先执行的
Form_Load窗体加载方法,用来图形界面,这时候可以设置一些窗体属性,当然在构造函数里也可以
initializecomponent和C# 怎样执行 InitializeComponent() 下面的函数的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!