精华内容
下载资源
问答
  • 相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可。下面重点介绍前一种,目前常见的有两种方法,基本上大同小异:第一种,在主窗体类中定义一个静态成员,来保存当前主窗体...

    很多人都苦恼于如何在子窗体中操作主窗体上的控件,或者在主窗体中操作子窗体上的控件。相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可。

    下面重点介绍前一种,目前常见的有两种方法,基本上大同小异:

    第一种,在主窗体类中定义一个静态成员,来保存当前主窗体对象,例如:

    public static yourMainWindow pCurrentWin = null;

    然后在主窗体构造函数中,给静态成员初始化,如下:

    pCurrentWin = this;

    那么在子窗体中调用父窗体,可以通过“主窗体类名. pCurrentWin”来操作当前的主窗体。

    第二种,是在子窗体中定义一个私有成员,来保存当前主窗体对象,例如:

    private yourMainWindow pParentWin = null;

    然后在子窗体构造函数中,加一参数,如下:

    public yourChildWindow( yourMainWindow WinMain )

    {

    pParentWin = WinMain;

    //Other code

    }

    在主窗体创建子窗体的时候,要把this作为参数来构造子窗体,这样在子窗体中调用父窗体,可以直接用“this.pParentWin”就可以了

    不过以上所作的,只是让你能够访问当前主窗体对象,那么如何操作控件,很多人直接修改控件的成员访问符,即把“private”改为“public”,我觉得这样破坏了本身类的封装,所以我比较喜欢的做法是增加公有属性或方法来供调用,例如:

    public string ButtonText

    {

    get{ return btn.Text;}

    set{ btn.Text = value;}

    }

    public void Button_Click()

    {

    this.btnDConvert.PerformClick();//Execute button click

    }

    展开全文
  • 相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可。 下面重点介绍前一种,目前常见的有两种方法,基本上大同小异: 第一种,在主窗体类中定义一个静态成员,来保存当前...
    很多人都苦恼于如何在子窗体中操作主窗体上的控件,或者在主窗体中操作子窗体上的控件。相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可。

    下面重点介绍前一种,目前常见的有两种方法,基本上大同小异:

    第一种,在主窗体类中定义一个静态成员,来保存当前主窗体对象,例如:

            public static yourMainWindow pCurrentWin = null;

     

           然后在主窗体构造函数中,给静态成员初始化,如下:

                pCurrentWin = this;

           那么在子窗体中调用父窗体,可以通过“主窗体类名. pCurrentWin”来操作当前的主窗体。

           第二种,是在子窗体中定义一个私有成员,来保存当前主窗体对象,例如:

            private yourMainWindow pParentWin = null;

          然后在子窗体构造函数中,加一参数,如下:

            public yourChildWindow( yourMainWindow WinMain )

            {

                pParentWin = WinMain;

                //Other code

    }

          在主窗体创建子窗体的时候,要把this作为参数来构造子窗体,这样在子窗体中调用父窗体,可以直接用“this.pParentWin”就可以了

     不过以上所作的,只是让你能够访问当前主窗体对象,那么如何操作控件,很多人直接修改控件的成员访问符,即把“private”改为“public”,我觉得这样破坏了本身类的封装,所以我比较喜欢的做法是增加公有属性或方法来供调用,例如:

            public string ButtonText

            {

                get{ return btn.Text;}

                set{ btn.Text = value;}

            }

     public void Button_Click()

            {

                this.btnDConvert.PerformClick();//Execute button click

            }

    展开全文
  • 举个例子,将子窗体中TextBox控件的值传给主窗体,有两种方法,第一种方法是将子窗体中TextBox控件中的值传给主窗体显示,可以参照我的另一篇文章窗体之间的传值;第二种方法是将在子窗体中调用主窗体的控件,由于...

    使用委托进行窗体之间的传值

    举例

    举个例子,将子窗体中TextBox控件的值传给主窗体,有两种方法,第一种方法是将子窗体中TextBox控件中的值传给主窗体显示,可以参照我的另一篇文章窗体之间的传值;第二种方法是将在子窗体中调用主窗体的控件,由于控件无法跨窗体调用,所以可以将控件放在函数里,在子窗体中调用父窗体的函数,这就需要用到委托,委托的目的就是调用函数,让函数可以作为参数来调用。以下是具体操作步骤。

    第一步

    创建一个Winform项目,并增加一个窗体类Form2。
    在这里插入图片描述

    第二步

    在父窗体中增加一个Label和Button控件,Label控件显示子窗体中传过来的值,Button控件创建子窗体。在Form1中构建一个带参的函数,将形参的值赋值给Label。并且在构建Form2的时候将showText函数作为参数传递给Form2。

    private void button1_Click(object sender, EventArgs e)
            {
                Form2 form2 = new Form2(showText);
                form2.Show();
            }
    
            private void showText(string str)
            {
                label1.Text = str;
            }
    

    第三步

    在Form2添加一个TextBox和Button控件。在Fomr2中构建一个委托,注意委托要与调用的函数的返回值和参数要保持一致。
    当Form1构建Foem2的时候,将Form1中的showText(string str)函数传递给了委托_del 。当button控件按下的时候,调用委托,将TextBox的值作为参数传递为委托。(调用委托实际上就是调用了Fomr1中showText()函数)。

     public delegate void  DelTest(string str);
        public partial class Form2 : Form
        {
            private DelTest _del;
            public Form2(DelTest del)
            {
                _del = del;
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                this._del(textBox1.Text);
            }
        }
    

    结果

    下面来看运行结果:
    在这里插入图片描述

    展开全文
  • 相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可。 下面重点介绍前一种,目前常见的有两种方法,基本上大同小异: 第一种,在主窗体类中定义一个静态成员,来保存当前...
    很多人都苦恼于如何在子窗体中操作主窗体上的控件,或者在主窗体中操作子窗体上的控件。相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可。

    下面重点介绍前一种,目前常见的有两种方法,基本上大同小异:

    第一种,在主窗体类中定义一个静态成员,来保存当前主窗体对象,例如:

            public static yourMainWindow pCurrentWin = null;

     

           然后在主窗体构造函数中,给静态成员初始化,如下:

                pCurrentWin = this;

           那么在子窗体中调用父窗体,可以通过“主窗体类名. pCurrentWin”来操作当前的主窗体。

           第二种,是在子窗体中定义一个私有成员,来保存当前主窗体对象,例如:

            private yourMainWindow pParentWin = null;

          然后在子窗体构造函数中,加一参数,如下:

            public yourChildWindow( yourMainWindow WinMain )

            {

                pParentWin = WinMain;

                //Other code

    }

          在主窗体创建子窗体的时候,要把this作为参数来构造子窗体,这样在子窗体中调用父窗体,可以直接用“this.pParentWin”就可以了

     不过以上所作的,只是让你能够访问当前主窗体对象,那么如何操作控件,很多人直接修改控件的成员访问符,即把“private”改为“public”,我觉得这样破坏了本身类的封装,所以我比较喜欢的做法是增加公有属性或方法来供调用,例如:

            public string ButtonText

            {

                get{ return btn.Text;}

                set{ btn.Text = value;}

            }

     public void Button_Click()

            {

                this.btnDConvert.PerformClick();//Execute button click

            }

    转载于:https://www.cnblogs.com/ingstyle/p/4081084.html

    展开全文
  • 2011-4-7 在编程时往往需要子页面对父窗体的方法进行回调。...父窗体EmployeeManager2创建子窗体EmployeeForm2: var empForm:EmployeeForm2=new EmployeeForm2(); PopUpManager.addPopUp(em...
  • C#子窗体调用主窗体中事件

    千次阅读 2015-07-16 22:33:11
    相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可。 下面重点介绍前一种,目前常见的有两种方法,基本上大同小异: 第一种,在主窗体类中定义一个静态成员,来保存...
  • 相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可。 下面重点介绍前一种,目前常见的有两种方法,基本上大同小异:第一种,在主窗体类中定义一个静态成员,来保存当前主...
  • 相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可。下面重点介绍前一种,目前常见的有两种方法,基本上大同小异:第一种,在主窗体类中定义一个静态成员,来保存当前主窗
  • 相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可。 下面重点介绍前一种,目前常见的有两种方法,基本上大同小异: 第一种,在主窗体类中定义一个静态成员,来保存当前主...
  • 相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可。 下面重点介绍前一种,目前常见的有两种方法,基本上大同小异: 第一种,在主窗体类中定义一个静态成员,来保存当前主...
  • 主窗体和子窗体之间如何相互操作对方的控件document.title="主...相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可。 下面重点介绍前一种,目前常见的有两种方法,基本上大同
  • 如果有个或多个线程操作某一控件状态,则可能会迫使该控件进入一不一致状态。还可能出现其他与线程相关 bug,包括争用情况和锁死。确保以线程安全方式访问控件非常重要。以下是解决办法: 1、把CheckF
  • 原文地址:...相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可。 下面重点介绍前一种,目前常见的有两种方法,基本上大同小异:第一种,在主窗体
  • (最近在做一个刷卡的门卫管理系统,需要通过子窗体操作...相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可。 下面重点介绍前一种,目前常见的有两种方法,基本上大同...
  • 转:...相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可。 下面重点介绍前一种,目前常见的有两种方法,基本上大同小异:第一种,在主窗体类中定义一个
  • 主窗体和子窗体之间如何相互操作对方的控件 document....相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可。 下面重点介绍前一种,目前常见的有两种方法,基本上大同小异:
  • 就我知道有三种方法,先看一下msdn介绍: 访问 Windows 窗体控件本质上不是线程安全。如果有个或多个线程操作某一控件状态,则可能会迫使该控件进入一种不一致状态。还可能出现其他与线程相关...
  • 就我知道有三种方法,先看一下msdn介绍: 访问 Windows 窗体控件本质上不是线程安全。如果有个或多个线程操作某一控件状态,则可能会迫使该控件进入一种不一致状态。还可能出现其他与线程相关 bug,...
  •  就我知道有三种方法,先看一下msdn介绍:访问 Windows 窗体控件本质上不是线程安全。如果有个或多个线程操作某一控件状态,则可能会迫使该控件进入一种不一致状态。还可能出现其他与线程相关 bug,...
  • C#子线程值传到窗体控件-小结

    千次阅读 2011-10-27 13:25:12
    最近写代码发现有两种方法可以把子线程中的值切换的主窗体的控件上。 方法1:这个方法在资源里UDP发消息中有,特点是:子线程写在主窗体的的类里面 public partial class Form1 : Form {  delegate ...
  • 相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可。  下面重点介绍前一种,目前常见的有两种方法,基本上大同小异:  第一种,在主窗体类中定义一个静态成员,来保存...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 178
精华内容 71
关键字:

创建子窗体的两种方法