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

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

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

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

    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

    }

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/374079/viewspace-130591/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/374079/viewspace-130591/

    展开全文
  • 最近工作用到了C#开发Form应用程序,其中用到了主窗体和子窗体之间控件的相互调用。查了一些资料,现在根据自己写的一个小示例总结如下。 1.主窗体中调用子窗体控件 在主窗体中调用子窗体的控件很简单,只要在主...
     
    
    最近工作用到了C#开发Form应用程序,其中用到了主窗体和子窗体之间控件的相互调用。查了一些资料,现在根据自己写的一个小示例总结如下。
    1.主窗体中调用子窗体控件
    在主窗体中调用子窗体的控件很简单,只要在主窗体中创建子窗体的时候保留所创建的子窗体对象即可。
    2.子窗体中调用主窗体控件
    方法如下:
    (1)   在主窗体类中定义一个静态数据成员,来保存当前主窗体对象,如下:
       public static MainForm pMainWin = null;
    (2)   然后在主窗体构造函数中,给上述静态成员初始化,如下:
           public MainForm()
             {
                InitializeComponent();
                pMainWin = this;//这里是初始化
        }
    (3)   在子窗体中调用主窗体,可以通过如下方式:主窗体类名.pMainWin”,例如:
       this.Text_S3.Text = MainForm.pMainWin.Text_M1.Text;
    this.Text_S4.Text = MainForm.pMainWin.Text_M4.Text;
    3.以上所做的,只是让你能够访问当前主窗体对象或子窗体对象,如果想操作控件,可以直接修改控件的成员访问符,即可以把”private”修改成”public”。当然最好的还是可以用增加公有属性的做法,这样不会破坏类本身的封装。如下:
    public string Text_Box
            {
                get {return Text_S2.Text;}
                set { Text_S2.Text = value; }
            }
    4.现在把一个小示例的代码粘贴如下:
    (1)建立主窗体,添加四个文本框控件:Text_M1,Text_M4,用来主窗体中输入数据传给子窗体;Text_M2,Text_M3,用来显示子窗体中传过来的数据。一个按钮Btn_M1用来调用子窗体。Btn_M1按钮事件中添加代码,现把主窗体代码显示如下:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
     
    namespace MainSubControl
    {
        public partial class MainForm : Form
        {
            //在主窗口类中定义一个静态成员,来保存当前主窗体对象,以便子窗体中调用其控件
            //子窗体调用时,通过"主窗体类名.pMinWin",然后在其构造函数中,给静态成员初始化.
            public static MainForm pMainWin = null;
     
     
            public MainForm()
            {
                InitializeComponent();
                pMainWin = this;
            }
     
            private void Btn_M1_Click(object sender, EventArgs e)
            {
                SubForm SubFormE = new SubForm();
     
                //由于下面要调用到子窗体SubFormE的Text_S1控件,所以需要把Text_S1控件的成员访问符号由private改成public即可.
                //调用子窗体SubFormE的Text_S2控件是通过增加了一个public属性来调用的,不是修改访问修饰符号,当然也可以这么做
                //也可以通过增加public方法来实现.
                if (SubFormE.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    this.Text_M2.Text = SubFormE.Text_S1.Text;
                    this.Text_M3.Text = SubFormE.Text_Box;
                    return;
                }
                return;
            }
     
            private void Btn_MExit_Click(object sender, EventArgs e)
            {
                this.Close();
            }
     
            private void MainForm_Load(object sender, EventArgs e)
            {
     
            }
        }
    }
    (2)建立子窗体,添加四个文本框:Text_S1,Text_S2,用来子窗体输入数据传给主窗体来显示;Text_S3,Text_S4,用来显示主窗体传过来的数据。一个确定按钮Btn_SOK。先把子窗体类代码显示如下:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
     
    namespace MainSubControl
    {
        public partial class SubForm : Form
        {
            //在子窗体中定义一个主窗体类的一个私有成员,来保存当前主窗体对象.
            //为其构造函数增加一个主窗口的参数来初始化,子窗体中调用,用"this.pParentWin"
            //18private MainForm pParentWin = null;
     
     
            public SubForm()
            {
                InitializeComponent();
                //18pParentWin = WinMain;
            }
     
            public string Text_Box
            {
                get {return Text_S2.Text;}
                set { Text_S2.Text = value; }
            }
     
     
            private void SubForm_Load(object sender, EventArgs e)
            {
                this.Text_S3.Text = MainForm.pMainWin.Text_M1.Text;
                //18this.Text_S4.Text = this.pParentWin.Text_M4.Text;
                this.Text_S4.Text = MainForm.pMainWin.Text_M4.Text;
            }
     
          
            private void Btn_SOK_Click(object sender, EventArgs e)
            {
              
            }
          
        }
    }
    呵呵,结束了,希望对大家有帮助。
    展开全文
  • 相比较而言,后面稍微简单一些,只要在主窗体创建子窗体的时候,保留所创建子窗体对象即可。下面重点介绍前一种,目前常见的有两种方法,基本上大同小异:第一种,在主窗体类中定义一个静态成员,来保存当前主窗
     

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

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

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

    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

    }

    展开全文
  • 主窗体和子窗体之间如何相互操作对方的控件document.title="主窗体和子窗体之间如何相互操作对方的控件 - "+document.title很多人都苦恼于如何在子窗体中操作主窗体上的控件,或者在主窗体中操作子窗体上的控件。...
  • 相比较而言,后面稍微简单一些,只要在主窗体创建子窗体的时候,保留所创建子窗体对象即可。 下面重点介绍前一种,目前常见的有两种方法,基本上大同小异: 第一种,在主窗体类中定义一个静态成员,来保存当前...
  • 主窗体和子窗体之间如何相互操作对方的控件 document.title="主窗体和子窗体之间如何相互操作对方的控件 - "+document.title很多人都苦恼于如何在子窗体中操作主窗体上的控件,或者在主窗体中操作子窗体上的控件。...
  • 原文地址:...相比较而言,后面稍微简单一些,只要在主窗体创建子窗体的时候,保留所创建子窗体对象即可。 下面重点介绍前一种,目前常见的有两种方法,基本上大同小异:第一种,在主窗体
  • 转:...相比较而言,后面稍微简单一些,只要在主窗体创建子窗体的时候,保留所创建子窗体对象即可。 下面重点介绍前一种,目前常见的有两种方法,基本上大同小异:第一种,在主窗体类中定义一个
  • (最近在做一个刷卡的门卫管理系统,需要通过子窗体操作父级MDI窗体,在网上找了一位大侠的文章解决了,先表示下感谢,这里也冒昧地贴出来,希望能更多的人共享)很多人都苦恼于如何在子窗体中操作主窗体上的控件...
  • 我们知道,在Delphi中,如果一个MDI Form非主窗体的话,我们就不能创建任何MDI Child Form,实在是遗憾,不过还是可以解决的。 Kingron查看了VCL的源代码,发现在创建窗体的时候,系统会检测MainForm是不是nil...
  • 主窗体和继承窗体

    2014-08-07 23:36:00
    程序将第一个创建的窗体作为主窗体。如果创建了一个后,在其他窗体尚未创建的时候便释放调,此时又创建了... 窗体会将主窗体的属性方法继承下来,对于主窗体中手动增加的方法(即声明在访问控制级别private、prot...
  • 说明:MDI程序主窗体的标题栏颜色活动的子窗口的标题栏颜色相同。 注意:如果窗体为 MDI 父窗体,则在触发 MDI 父窗体的 Closing 事件之前,将触发所有 MDI 子窗体的 Closing 事件。另外,在触...
  • C#子线程创建窗体

    千次阅读 2018-08-21 14:28:23
    自己在写socket通讯碰到这样的问题: 除UI线程外,有一个后台socket监听线程一直在监听新消息,新消息到来后...应该在UI线程上创建窗体,通过主线程里面的一个窗体或控件调用Invoke()方法,让创建和显示窗体的...
  • 最近在做一个预览界面,主要是不同规格子视频流展示。...同时规格1规格9也为创建不同的自定义控件。 我想做的是在预览界面为不同规格的picturebox增加视频流(图中的监控点) 也就是当我点击某个规格视图的...
  • 主窗体向多个子窗体广播消息 最终效果如下图显示。  首先在主窗体中单击“创建窗口”,创建出若干个从窗体。    然后点击“计数自增”按钮,此时所有从窗体中的计数在一起自增。    下面看下编程实现,代码...
  • > GLUT Tutorial >...利用GLUT我们可以定义子窗体,例如切分主窗体到不同区域,每个子窗体有自己的OpenGL上下文回调函数.一个可行的程序是可以同时提供几种相同场景的视觉. 为了创建子窗体,我们可以使...
  • 显示关闭子窗体: 方法1:源代码:EatGood.FoodManageUI.MessageForm.ConfirmDelFeelkindOrFeelsForm feelkindform = new MessageForm.ConfirmDelFeelkindOrFeelsForm();//创建一个窗体对象 feelkindform....
  • 自己在写socket通讯碰到这样的问题: 除UI线程外,有一个后台socket监听线程一直在监听新消息,新消息到来后,右下角弹出...应该在UI线程上创建窗体,通过主线程里面的一个窗体或控件调用Invoke()方法,让创建和
  • 这时,就可以在这个供应商详情的主窗体创建一个产品子窗体,然后这个产品子窗体供应商主窗体的关系建立好了,它会根据不同的供应商自动列出不同的产品列表来。 创建子窗体的步骤是这样的: 就是在窗体的设计...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 267
精华内容 106
关键字:

创建主窗体和子窗体