精华内容
下载资源
问答
  • 创建子窗体的两种方法
    2020-06-01 23:25:37

    直接设置子窗体的两个属性即可

    setWindowFlag(Qt::FramelessWindowHint, true);
    setAttribute(Qt::WA_TranslucentBackground, true);
    
    更多相关内容
  • Access数据库窗体设计上,可以在一个已经创建好的窗体里嵌套一个子窗体。...创建子窗体的步骤是这样的: 就是在窗体的设计视图上,选“子窗体”控件,然后用鼠标拉出来。 上面的红框就是“子窗体”控件。 然后在子窗

    Access数据库窗体设计上,可以在一个已经创建好的窗体里嵌套一个子窗体。这样,这个子窗体能根据主窗体的变化而变化。

    比如我建立了一个供应商详情的主窗体,这时想在这个主窗体上能根据每个不同的供应商显示它的产品列表,怎么办?这时,就可以在这个供应商详情的主窗体上创建一个产品子窗体,然后这个产品子窗体就和供应商主窗体的关系建立好了,它会根据不同的供应商自动列出不同的产品列表来。
    创建子窗体的步骤是这样的:
    就是在窗体的设计视图上,选“子窗体”控件,然后用鼠标拉出来。
    在这里插入图片描述
    上面的红框就是“子窗体”控件。
    然后在子窗体向导里面,把两个窗体的关联ID对应好后,就可以了。
    看一下微软的例子,罗斯文数据库:
    在这里插入图片描述
    它的产品列表就是根据不同的供应商显示的。

    展开全文
  • 6.2 窗体创建

    千次阅读 2021-12-03 15:30:34
    Access功能区“创建”选项卡的“窗体“组中,提供了多种创建窗体的功能按钮,其中包括: “窗体”、 “窗体设计”和“空白窗体”三个主要的按钮,还有“窗体向导”、 “导航”和“其他窗体”三个辅助按钮。...

       

    目录

    1.使用“窗体”创建窗体

    2.使用“多个项目”创建窗体

    3.创建"分割窗体"

    4.使用窗体向导创建窗体

    5.使用“空白”按钮创建窗体


    Access功能区“创建”选项卡的“窗体“组中,提供了多种创建窗体的功能按钮,其中包括:  “窗体”、  “窗体设计”和“空白窗体”三个主要的按钮,还有“窗体向导”、  “导航”和“其他窗体”三个辅助按钮。单击“导航”和“其他窗体”按钮还可以展开下拉列表,列表中提供了创建特定窗体的方式。
        各个按钮的功能如下:
        窗体:最快速地创建窗体的工具,只需要单击一次鼠标便可以创建窗体。使用这个工具创建窗体,来自数据源的所有字段都放置在窗体上。
        窗体设计:利用窗体设计视图设计窗体。
        空白窗体:这也是一种快捷的窗体构建方式,以布局视图的方式设计和修改窗体,尤其是当计划只在窗体上放置很少几个字段时,使用这种方法最为适宜。
        多个项目:使用“窗体”工具创建窗体时,所创建的窗体一次只显示一个记录。而使用多个项目则可创建显示多个记录的窗体。
        分割窗体:可以同时提供数据的两种视图,即窗体视图和数据表视图。分割窗体不同于窗体/子窗体的组合(子窗体将在后面介绍)。它的两个视图连接到同一数据源,并且总是相互保持同步的。如果在窗体的某个视图中选择了一个字段,则在窗体的另一个视图中选择相同的字段。
        窗体向导:一种辅助用户创建窗体的工具。
        数据表:生成数据表形式的窗体。
        模式对话框:生成的窗体总是保持在系统的最上面,不关闭该窗体,不能进行其他操作,登录窗体就属于这种窗体。
        导航:用于创建具有导航按钮即网页形式的窗体,在网络世界把它称为表单。它又细分为六种不同的布局格式。虽然布局格式不同,但是创建的方式是相同的。导航工具更适合于创建Web形式的数据库窗体。

    1.使用“窗体”创建窗体

        使用“窗体”按钮所创建的窗体,其数据源来自某个表或某个查询段,其窗体的布局结构简单规整。这种方法创建的窗体是一种单个记录的窗体。
          使用“窗体”按钮创建“成绩”窗体。操作步骤如下:
        (1)打开教学管理数据库,在导航窗格中,选择作为窗体的数据源“成绩”表。在功能区“创建”选项卡的“窗体“组(以下创建窗体都是在该选项卡的窗体组进行操作,因此省略图),单击“窗体”按钮,窗体立即创建完成,并且以布局视图显示。


        (3)在快捷工具栏,单击“保存”按钮,在弹出的“另存为”对话框中,输入窗体的名称“成绩”,然后单击“确定”按钮。

    2.使用“多个项目”创建窗体

      多个项目即在窗体上显示多个记录的一种窗体布局形式.
        使用“多个项目”方法创建“成绩”窗体.操作步骤如下:
      (1)打开教学管理数据库,在导航窗格中,选中作为窗体的数据源“成绩”表。单击“其他窗体”按钮,在打开的下拉列表中,单击“多个项目”命令。
        (2)窗体创建完成,同时打开窗体布局视图。
        (3)在快捷工具栏,单击“保存”按钮,在弹出的“另存为”对话框中,输入窗体的名称“成绩多个项目”,然后单击“确定”按钮。

    3.创建"分割窗体"

        “分割窗体”是用于创建一种具有两种布局形式的窗体。在窗体的上半部是单一记录布局方式,在窗体的下半部是多个记录的数据表布局方式。这种分割窗体为用户浏览记录带来了方便,既可以宏观上浏览多条记录,又可以微观上明细地浏览一条记录。

    4.使用窗体向导创建窗体

        使用“窗体”按钮创建窗体虽然方便快捷,但是无论在内容和外观上都受到很大的限制,不能满足用户较高的要求。为此可以使用窗体向导来创建内容更为丰富的窗体。
          使用窗体向导创建教师信息窗体。操作步骤如下:
        (1)打开“教学管理”数据库“选中“教师”表,单击“窗体向导”按钮。
        (2)在打开的“请确定窗体上使用哪些字段”对话框中,在“表和查询”下拉列表中光标已经定位在所需要的数据源“教师”表,单击按钮,把该表中全部字段送到“选定字段”窗格中,单击”下一步”按钮。


        (3)在打开的“请确定窗体使用的布局”对话框中,选择“纵栏表“单击“下一步”按钮。


        (4)在打开的“请为窗体指定标题”对话框中,输入窗体标题“教师”,选取默认设置:  “打开窗体查看或输入信息”,单击“完成”按钮。


        (5)这时打开窗体视图,看到了所创建窗体的效果。

         上面介绍了基于单表使用向导创建窗体,若要创建从多个表中提取数据的窗体,使用“窗体向导”同样也是十分方便的。
          创建教师授课窗体。这个窗体的数据源一部分来自教师表,另一部分来自授课表。
        (1)打开教学管理数据库,选中“教师”表,单击“窗体向导”按钮。
        (2)在打开的“请确定窗体上使用哪些字段带对话框中,在“表/查询”下拉列表中光标已经定位在所需要的数据源“教师”表,把该表中“姓名”、  “职称”和“系别”字段送到“选定字段”窗格中。
        (3)在“表/查询”下拉列表中,选择“授课”表,把“课程号”、  “班级”、  “授课教室”和“授课时间”字段发送到“选定字段”‘窗格中,然后单击“下一步”按钮。


        (4)在打开的“请确定查看数据的方式”对话框中,默认“通过教师”,在对话框中,显示出两个数据源的布局关系,然后单击“下一步”按钮。


        (5)在打开的“请确定子窗体使用的布局”对话框中,选择默认的“数据表“方式,单击“下一步”按钮。

        (6)在打开的“请为窗体指定标题”对话框中,选择默认,单击“完成”按钮。

         在使用窗体向导创建窗体后,自动为窗体命名,如果对此名称不满意,可以在关闭窗体后修改窗体的名称。

    5.使用“空白”按钮创建窗体

        使用“空白”按钮创建窗体是在布局视图中创建数据表式窗体,这种“空白”就像一张白纸。使用“空白”创建窗体的同时,Access打开用于窗体的数据源表,根据需要可以把表中的字段拖到窗体上,从而完成创建窗体的工作。
          使用“空白”按钮创建“教学管理”数据库中的‘课程”窗体。操作步骤如下:
        (1)打开教学管理数据库,在功能区中,单击:(空白窗体)按钮。
        (2)这时打开了“空白窗体”视图,同时打开了“字段列表”窗格,显示数据库中所有的表。


        (3)单击“课程”表前的“+”号,展开“课程”表所包含的字段。

        (4)依次双击课程表中的“课程号”等所有字段,这些字段则被添加到空白窗体中,这时立即显示出“课程”表中的第一条记录。同时“字段列表”的布局从一个窗格变为三个小窗格,分别是:  “可用于此视图的字段”、  “相关表中的可用字段”和“其他表中的可用字段”。

         (5)如果选择相关表字段则由于表之间已经建立了关系,因此将会自动创建出主窗体一子窗体结构的窗体。展开“授课”表,双击其中的“教师号”字段,该字段添加到空白窗体中,显示出教授计算机导论课程的教师信息。

        (6)在“快速工具栏”上单击“保存”按钮,在弹出的“另存为”对话框中,输入“课程与主讲教师”,然后单击“确定”按钮(图略),到此窗体创建完成。
     

    展开全文
  • C# 子窗体与父窗体之间几传值的方式 https://blog.csdn.net/yuekunge/article/details/9171301 C# 委托和事件,简单示例说明问题 https://www.cnblogs.com/hjsstudio/p/9816126.html C#简单实现子窗体向父窗体...

    C# 子窗体与父窗体之间几种传值的方式

    https://blog.csdn.net/yuekunge/article/details/9171301

    C# 委托和事件,简单示例说明问题

    https://www.cnblogs.com/hjsstudio/p/9816126.html

    C#简单实现子窗体向父窗体传值的方法

     

    委托方法=>子窗体
       public event Action<List<DataGridViewRow>> myEvent;
       myEvent(List);  子窗体调用
    
    父窗体
    创建对象
               frm.myEvent += Set物料;
      private void Set物料(List<DataGridViewRow> list)()
    {
    }

    方式一: 使用公共静态变量传值

    主窗体frmMain中代码

    ?

    1

    2

    3

    4

    5

    6

    7

    public partial class frmMain : Form

    {

     //声明工位ID 为公共静态变量

     public static string terminalID = "";

     //给静态变量赋值

     terminalID = "q13bh01-bh12";

     }

    子窗体frmGroup中代码

    ?

    1

    2

    3

    4

    5

    6

    private void frmGroup_Load(object sender, EventArgs e)

    {

      this.txtTerminalID.Text= frmMain.terminalID.Trim();

      //可以再赋值给静态成员,方便其他窗体调用

      frmMain.terminalID = "q13bh01-bh11";

    }

    特点 : 双向传值,实现简单
    缺点: 静态变量在类加载的时候分配内存,存储于方法区,一般不会被销毁,在系统不够内存情况下会自动回收静态内存,这样就会引起访问全局静态错误。

    方式二: 使用公共变量传值

    主窗体frmMain中代码

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    public partial class frmMain : Form

    {

     //声明工位ID 为公共变量

     public string terminalID = "";

     //给变量赋值

     terminalID = "q13bh01-bh12";

     //单击‘行为'按钮的时候会给窗体传值

     private void btnGroup_Click(object sender, EventArgs e)

        {

          frmGroup frmGro = new frmGroup();

          //变量传值 ,注意顺序写在ShowDialog()方法之前

          frmGro .stationID = this.terminalID;

          frmGro .ShowDialog();

        }

     }

    子窗体frmGroup中代码

    ?

    1

    2

    3

    4

    5

    public partial class frmGroup : Form

    {

     //定义公共属性

     public string stationID = "";

    }

    特点 : 单向传值,只能主窗体给子窗体传值,实现简单

    方式三: 使用委托传值

    先来看子窗体frmGroup中代码

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    namespace Siemens.Simatic.GUIClient.MESClient

    {

      //1、声明一个委托

      public delegate void setTextValue(string textValue,bool flag);

      public partial class frmGroup : Form

      {

        //2、声明一个委托类型的事件

         public event setTextValue setFormTextValue;

         public string groupName = "";

         public bool flagBtnGroup = false;

         public frmGroup()

         {

          InitializeComponent();

         }

         //轮询‘行为'按钮(相当于按钮单击事件)

         private void tmrBtn_Tick(object sender, EventArgs e)

         {

          if (sender is ButtonX) {

            ButtonX butX = (ButtonX)sender;//判断触发事件的是不是Button

            groupName = butX.Text.Trim();

            flagBtnGroup = true;

            //3、准备要回传的数据。

            setFormTextValue(this.groupName.Replace(" ", ""), this.flagBtnGroup );

            this.Close();

            return;

          }

        }

    主窗体frmMain中代码

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    private void btnGroup_Click(object sender, EventArgs e)

       {

         frmGroup frmGro = new frmGroup();

          //4、初始化事件

         frmGro .setFormTextValue += new setTextValue(frmGro _setFormTextValue);

         //变量传值 ,注意顺序写在ShowDialog()方法之前

         frmGro .stationID = this.terminalID;

         frmGro .ShowDialog();

       }

       //5、事件具体实现

        public void frmGro _setFormTextValue(string textValue,bool flag)

       {

         this.newGroupName = textValue;

         this.flagBtnGroup = flag;

         if (!string.IsNullOrEmpty(newGroupName))

         {

            ……

         }

        }

    特点 :适合子窗体数据实时回传父窗体。

    方式四:使用构造函数传递一个数值

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    class FormB

    {

     int orgId;

     public FormB(int orgId)

     {

       this.orgId=orgId;

     }

    }

     

    class FormA

    {

    public void ShowB()

    {

      FormB fb=new FormB(5); // 5是要传递过去的值

      fb.Show();

    }

    }

    方式五:把A窗体整个传递给B窗体

    有些时候需要在B窗体里对A窗体的某个控件值做修改,并且需要立即改变A窗体的控件显示,本方法适合这种情况。

    修改FormA,把要在B里处理的控件的可访问性(Modifiers)设为public,然后按下面的方式处理

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    class FormA

    {

    public void ShowB()

    {

      FormB fb=new FormB(this); // 在构造函数里把A窗体本身传过去

      fb.Show();

    }

    }

     

    class FormB

    {

    FormA fm; //B窗体增加一个FormA类型的成员

    public FormB(FormA fm) //添加一个带参数的构造方法,参数类型是FormA

    {

      this.fm=fm;

    }

    protected void Method1()

    {

      fm.txtName.Text="Haha!"; //在这儿可以直接操作A窗体里的控件了!

    }

    }

    叨叨两句

    项目中父窗体向子窗体传值传的是固定值,用的是第一种方式,子窗体向父窗体传值传的是变化的值,用的是第三种方式,第三种方式为我解决了一个大麻烦。

    总结

    感谢您的阅读,窗体传值有好多种方法,构造参数参数传值、公共属性传值等,各种场景下找到适合需求的最好,希望为小编提出宝贵意见!

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

     

    本文实例讲述了WinForm窗体间传值的方法。分享给大家供大家参考。具体实现方法如下:

    窗体间传递数据,无论是父窗体操作子窗体,还是子窗体操作符窗体,有以下几种方式:
     
    1.公共静态变量;
    2.使用共有属性;
    3.使用委托与事件;
    4.通过构造函数把主窗体传递到从窗体中;

    一、通过静态变量

    特点:传值是双向的,实现简单
     
    实现代码如下:
    在一个app类中定义一个静态成员value

    复制代码代码如下:

    public class app
    {
    public static string value;
    }


    在窗体Form1中这样调用

    复制代码代码如下:

    app.value = "f2"; //给静态成员赋值
    new Form2 ( ).Show ( ); //显示Form2


    在窗体Form2中

    复制代码代码如下:

    this.Text = app.value; //取回app.value的值
    app.value = "Form2"; //给app.value赋值,以便其他窗体调用


     
    二、公共变量传值

     

    这种方法就是利用一个公共变量,先把需要的值存放到这个公共变量,然后需要的时候再通过读取该变量的值来使用
    例子
    Form1:

    复制代码代码如下:

    public static string Form1Value; // 注意,必须申明为static变量
    private void button1_Click(object sender, EventArgs e)
    {
    Form1Value = "来自Form1";
    new Form2().Show();
    }


    Form2:

    复制代码代码如下:

    private void Form_Load(object sender, EventArgs e)
    {
    MessageBox.Show(Form1.Form1Value);
    }


    这种方式传值,理解和使用上都相对的简单,但是容易让变量串值,比如第一次修改为“a”,而第二次修改为“b”,则有可能本来需要“a”值的结果变成了“b”。
     
    三、静态方法方式访问

     

    这种方法与传值方法的第一种有些类似,就是将需要被其他窗体访问的方法用static定义,以便其他传递可以直接访问到
    例子:
    Form1:

    复制代码代码如下:

    private void button1_Click(object sender, EventArgs e)
    {
    new Form2().Show();
    }
    public static void FF()
    {
    MessageBox.Show("Form1方法");
    }


    Form2:

    复制代码代码如下:

    private void Form_Load(object sender, EventArgs e)
    {
    Form1.FF();
    }


    使用这种方法访问其他窗体的方法,在跨窗体上实现方便,但是需要需要访问到控件值则不能直接访问,需要将值先传递给其他窗体,再有窗体传递回来,或者存储在其他变量后对这变量进行访问。
     
    四、通过窗体的公有属性值

     

    特点:实现简单
     
    实现代码如下:
    在窗体Form2中定义一个公有属性Form2Value,获取和设置textBox1的文本值

    复制代码代码如下:

    public string Form2Value
    {
    get
    {
    return this.textBox1.Text;
    }
    set
    {
    this.textBox1.Text = value;
    }
    }


    在窗体Form1中这样调用

    复制代码代码如下:

    Form2 f2 = new Form2 ( );
    f2.Form2Value = "Ok"; //给Form2的textBox1赋值Ok
    f2.ShowDialog ( );


     
    五、通过窗体的公有属性值和Owner属性

     

    特点:实现简单,灵活
     
    实现代码如下:
    在窗体Form1中

    复制代码代码如下:

    public int Form1Value = 1;
    Form2 f2 = new Form2 ( );
    f2.ShowDialog ( this ); //把Form1作为Form2的所有者传递给Form2


    在窗体Form2中

    复制代码代码如下:

    //Form2的所有者是Form1
    Form1 f1 = ( Form1 ) this.Owner;
    //取到Form1的值是1
    MessageBox.Show ( f1.Form1Value .ToString ( ) );
    //给Form1的Form1Value赋值222
    f1.Form1Value = 222;


     
    六、通过窗体的公有属性值和Application.OpenForms属性

     

    说明:Application.OpenForms属性:获取属于应用程序的打开窗体的集合。(此属性在 .NET Framework2.0版中)
     
    实现代码如下:
    在窗体Form1中

    复制代码代码如下:

    public int Form1Value = 1;
    Form2 f2 = new Form2 ( );
    f2.Show ( );


    在窗体Form2中

    复制代码代码如下:

    string formName = "Form1";
    Form fr = Application.OpenForms [ formName ];
    if ( fr != null )
    {
    Form1 f1 = ( Form1 ) fr;
    //取到Form1的值是1
    MessageBox.Show ( f1.Form1Value.ToString ( ) );
    //给Form1的Form1Value赋值222
    f1.Form1Value = 222;
    }


     
    七、传参式传值

     

    此方法顾名思义就是将需要的值一参数形式传递给需要值的窗体
    例子:
    Form1:

    复制代码代码如下:

    private void button1_Click(object sender, EventArgs e)
    {
    new Form2("来自Form1").Show();
    }


    Form2:

    复制代码代码如下:

    public Form2(string value)
    {
    InitializeComponent();
    MessageBox.Show(vaue);
    }


    此种窗体间传值方法明显优与第一种的传值参数,也不会出现串数据现象,但是需要注意修改Form2的构造函数,每个窗体的默认构造函数默认都是无参数的,因此需要去修改构造函数。
     
    八、通过构造函数

     

    特点:传值是单向的(不可以互相传值),实现简单
     
    实现代码如下:
    在窗体Form2中

    复制代码代码如下:

    int value1;
    string value2;
    public Form2 ( int value1 , string value2 )
    {
    InitializeComponent ( );
    this.value1 = value1;
    this.value2 = value2;
    }


    在窗体Form1中这样调用

    复制代码代码如下:

    new Form2 ( 111 , "222" ).Show ( ); //这样就把111,"222",这2个值传送给了Form2


     
    九、用委托来实现。

     

    委托可以把一个方法作为参数带入另一个方法,在窗体传值中,子窗体需要执行一个方法来改变父窗体的值,
    而这个方法,则可以用委托从父窗体传递过来。在父窗体中,声明修改文本框的方法AfterChildChange,在new一个子窗体的时候,将这个方法传递给子窗体。那么当子窗体点击同步按钮时,会执行父窗体的AfterChildChange方法,已达到修改文本框值的目的。
     
    例子
    1、在子窗体中设置一个委托类型的属性:

    复制代码代码如下:

    public Action<string> AfterChangeTextDel { get; set; }


    2、在子窗体同步按钮中:

    复制代码代码如下:

    if (AfterChangeTextDel != null)
    {
    AfterChangeTextDel(this.textBox1.Text);//执行委托
    }


    3、在父窗体中添加方法:

    复制代码代码如下:

    public void AfterChildChange(string text)
    {
    txtName.Text = text;
    }


    4、在父窗体启动子窗体按钮:

    复制代码代码如下:

    ChildFrm frm =new ChildFrm();
    frm.AfterChangeTextDel = new Action<string>(this.AfterChildChange);
    frm.Show();


    5、这样也能实现窗体传值,子窗体的委托可以在父窗体 其他地方可以进行直接执行。:解决此问题。微软引入了事件。
     
    十、用事件来实现

     

    事件是委托类型的对象。它内部是用委托来实现的,对于事件来说,外部只能注册自己+=,注销自己-=,外界不可以注销其他的注册者,也不能主动触发事件。而委托则无法实现这些控制,因此诞生了事件这话总语法。
     
    实现代码如下
    在窗体Form2中定义公有属性Form2Value,获取和设置textBox1的文本值
    并且还定义一个accept事件

    复制代码代码如下:

    public string Form2Value
    {
    get
    {
    return this.textBox1.Text;
    }
    set
    {
    this.textBox1.Text = value;
    }
    }
    public event EventHandler accept;
     
    private void button1_Click ( object sender , EventArgs e )
    {
    if ( accept != null )
    {
    accept ( this , EventArgs.Empty ); //当窗体触发事件,传递自身引用
    }
    }


    在窗体Form1中

    复制代码代码如下:

    Form2 f2 = new Form2 ( );
    f2.accept += new EventHandler ( f2_accept );
    f2.Show ( );
    void f2_accept ( object sender , EventArgs e )
    {
    //事件的接收者通过一个简单的类型转换得到Form2的引用
    Form2 f2 = (Form2) sender;
    //接收到Form2的textBox1.Text
    this.textBox1.Text = f2.Form2Value;
    }

     

    希望本文所述对大家的C#程序设计有所帮助

    展开全文
  • access窗体设计:创建子窗体

    万次阅读 2014-03-20 19:42:05
    同时创建窗体与子窗体 在“数据库”窗口中,单击“对象”下的“窗体” 。 单击“数据库”窗口工具栏上的“新建”按钮。 在“新建窗体”对话框中,单击“窗体向导”。 如果向导未启动 这可能是...
  • C# 窗体之间参数互相传递的两种方法与使用

    千次阅读 多人点赞 2021-07-01 18:22:07
    窗体传递数据有什么用: 在开发应用时,一般需要写好几个窗口,如:“登录界面” “登录成功页面“ ”个人中心“等等,经常需要...第一种方法(重写构造函数)不推荐使用: 在Form1点击登录按钮时,打开窗口并且承认
  • 子窗体的close事件中调用某一种方法,该方法大致等同于主窗体的this.close方法。所以核心问题就是如何实现在子窗体中调用主窗体的方法? (1)如果直接选择在子窗体的close事件中new一个新的“主窗体”对象,然后...
  • 相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可。 下面重点介绍前一种,目前常见的有两种方法,基本上大同小异: 第一种,在主窗体类中定义一个静态成员,来保存当前主...
  • 3.增加选项卡页 创建选项卡时,默认是个页,允许设计者添加页,或者把添加的页删除掉。 例 修改教师统计窗体,添加个页。操作步骤如下: ...子窗体和主窗体的数据源之间存在链接关系。有...
  • Qt创建多线程的两种方法

    万次阅读 多人点赞 2017-12-25 15:33:54
    1.摘要 Qt有两种多线程的方法,其中一种是继承QThread的run函数,另外一种是把一个继承于QObject的类转移到一个Thread里。 Qt4.8之前都是使用继承QThread的run这种方法,但是Qt4.8之后,Qt官方...两种方法区别不大...
  • 情景常用于用户登录界面跳转到主界面的情形,本文以此为例。法1:step1:program.cs中main函数:static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault...
  • 这个技巧的实现,不只是有一种方法,我们可以从多方入手,今天呢,就讲解两种方法。 第一种方法,利用委托和事件。 首先,我们创建两个winform窗体,对界面的设计如下: 我们来假设有这么一个项目,我的主form需要...
  • 6.6 创建选项卡窗体(上)

    千次阅读 2021-12-16 15:20:14
    创建独立型选项卡窗体 在通常情况下,计算机中管理的信息非常多,应用选项卡控件可以在窗口的有限空间中,高效地管理更多的信息。选项卡不仅广泛地应用在Windows操作系统本身,而且还普遍应用在Office中。在Access...
  • 首先,SiziGame类通过构造器初始化设置窗体和里面控件,并且把代表6点数的图片加载到imgs集合里面,还要给开始按钮绑定监听事件函数。 其次,重写actionPerformed()函数,来实现按钮触发3个骰子转动。在这个函数里...
  • 这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、...
  • 知识点:控件排列和对齐的方法创建MDI窗体方法、高级控件(工具条ToolStrip、状态条StatusStrip、图片框PictureBox、图片列表ImageList、定时器Timer)的使用、数据验证代码的编写、窗体间数据传递的方法 ...
  • 注意主窗口一定要为tk.Tk(),在主窗口上通过button的点击相应子函数创建子窗口,注意此时创建出来的窗口必须是Toplevel,否则出错。至于用图片在窗口上绘图,则按代码所示即可。# -*- coding: utf-8 -*-"""Created on...
  • Win32窗口及其创建应用

    千次阅读 2019-08-22 17:54:02
    后面所讲的窗口控件是一特殊的窗口。窗口控件不需要我们来定义窗口类,系统已经帮我们定义好了,我们自己引用就好。 这里我们先介绍普通窗口。 一、窗口的创建 创建过程: 1.注册窗口类(我们在主...
  • c#子窗体与父窗体相互控制

    千次阅读 2017-11-19 10:30:09
    YY:对比一下系统自动添加的内容 this.openToolStripButton.Click += new System.EventHandler(this.OpenFile); System.EventHandler()...c#子窗体与父窗体相互控制  引自:https://www.cnblogs.com/gise
  • Win32创建窗体程序

    千次阅读 2017-05-23 20:23:49
    Win32开发步骤: ...重要的参数: 窗口类的名字,szWindowClass ...(2)使用窗口类创建具体窗体,并且显示窗体-----》(win32中默认在InitInstance函数中) (3)Main函数中做消息循环 根据不同的窗体调用
  • 两种方式: 第一种: 第二种方法: 1 //利用.net Framework 2.0新加的Application.OpenForms集合解决: 2 bool isOpen = false; //初始为未打开状态 3 foreach (Form frm in Application.OpenForms) /...
  • 创建Windows窗体

    千次阅读 2018-06-10 19:07:23
        开发 游戏的第一步,需要建立窗体。     做出的空白窗体,并没有游戏的绘图系统,只是“建立了一个标准窗体”而已。需要探讨的是,在窗体背后,Windows 系统的工作。 Windows 窗体的构成部分   ...
  • 这几天在优化程序的时候发现了一个问题,就是在MDI窗体中的子窗体被激活显示出来之后,总是被主窗体中的控件遮挡(各种控件)。解决的方法也试了很多但是都不是很满意,由于C#的WINFROM窗体没有SETPARENT的方法,...
  • VB6 设置窗口

    千次阅读 2020-08-01 19:20:21
    VB6建立主窗体的子窗体两种方法: 第一种方法是建立一个MDI窗体,然后把普通的Form窗体设置成它的子窗体。 第二种方法是使用Windows API设置一个普通form窗体为另外一普通窗体的子窗体。 方法1操作 1.首先打开VB6...
  • 目录 ...需求描述:在MDI窗体中,子窗体只能被打开一次,如果已有窗体不会在重新创建窗体对象 1 窗体的创建 (1)创建mdi窗体:新建窗体将其名称更改为FormMain,属性IsMdiContainer设置为tr...
  • C# winform跨窗体传值的几种方法分析

    千次阅读 2018-12-05 23:23:18
    创建一个Winform窗体应用程序项目,然后添加一个Form2窗体。 在Form1和Form2中各添加一个textBox和button: ...为了方便起见,将Form1称作父窗体,将Form2称作子窗体。   相对来说,将父窗体的值...
  • Delphi中实现MDI子窗体(转)

    千次阅读 2019-09-23 01:06:43
    MDI体系中至少需要两种窗体,只能将其中之一设置为主窗体,其余窗体全部则全部为子窗体,主窗体负责子窗体的管理、切换等工作。自然,子窗体上承载的内容可各不相同。Tidy浏览器最终实现了三种...
  • 添加一个显示结果的子窗体 5.设置组合框更新后事件 1.创建交互式动态查询窗体 参数查询是一交互式动态查询,在输入不同的参数后可以获得不同的查询结果。参数查询虽然使用灵活,但是存在一定的缺点。例如,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,182
精华内容 13,272
热门标签
关键字:

创建子窗体的两种方法