当前位置: 代码迷 >> C# >> Form窗体中, 其余控件的构造函数在哪里
  详细解决方案

Form窗体中, 其余控件的构造函数在哪里

热度:39   发布时间:2016-05-05 02:43:29.0
Form窗体中, 其他控件的构造函数在哪里?
本人之前搞下位机编程, 现初学C# .NET, 属于菜鸟中的菜鸟, 请各位不吝赐教, 谢谢!!

下面为本人理解的, 不知对不对:

程序运行后, 首先执行main函数

static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }

运行到"Application.Run(new Form1());"时, 调用Form1的构造函数:

public Form1()
        {
            InitializeComponent();
        }


此初始化函数"InitializeComponent", 会初始化本form中所使用的所有的控件

那么问题来了, form为一控件, 有构造函数, 但其中所用的其他控件的构造函数呢? 在InitializeComponent函数中未发现

是不是编译环境默认构造了, 还是说通过new和下面的代码代替了构造函数呢?

谢谢!!!!
------解决思路----------------------
楼主是什么意思,如果要看源码似乎只能反编译了,new 对象就是调用的构造函数.
------解决思路----------------------
在design.cs里面有各种声明,至于构造函数那是看不到的,因为没源码,但你可以在控件类声明上F12看类的概要说明
------解决思路----------------------
已拖放好的组件都在InitializeComponent()中,例如下面的listView1 组件。当然也可以在窗体的构造函数中手工初始化子控件。
this.listView1 = new System.Windows.Forms.ListView();
            this.SuspendLayout();
            // 
            // listView1
            // 
            this.listView1.AllowDrop = true;
            this.listView1.Dock = System.Windows.Forms.DockStyle.Fill;
            this.listView1.Location = new System.Drawing.Point(0, 0);
            this.listView1.Name = "listView1";
            this.listView1.Size = new System.Drawing.Size(292, 253);
            this.listView1.TabIndex = 0;
            this.listView1.UseCompatibleStateImageBehavior = false;
            this.listView1.DragEnter += new System.Windows.Forms.DragEventHandler(this.listView1_DragEnter);
------解决思路----------------------
F12看到的是所有public和protected函数,如果看不到构造函数,并不代表没有,因为可以是默认空构造函数,也可以是private ,internal这种声明作用域的构造函数
  相关解决方案