标签: mdiparent

Winforms MDI客户区的大小/位置

MDI表单内部是托管mdi子表单的客户端区域.我如何知道该区域有多大?到目前为止,我能想出的最好的方法是找到父级潜在客户区域的总大小(mdiparent.ClientRectangle),然后减去从客户区域带走的工具栏等组件的大小.有没有更好的办法?

mdi mdiparent mdichild winforms

11
推荐指数
1
解决办法
9615
查看次数

从另一个子表单打开子表单并将MDI设置为父表单 - 怎么办?

我有一个MDI表格.在此MDI表单中,我可以使用以下命令打开一些子表单:

这是在 MainForm

Form1 f1 = new Form1;
f1.MdiParent = this; //this refers to MainForm (parent)
f1.Show();
Run Code Online (Sandbox Code Playgroud)

这按预期工作!

但是现在,当我处于子形式(Form1 - > f1)时,我想打开另一个形式作为孩子,MainForm但是当我使用this关键字时,它会受到影响f1.如何打开新表单f1并将其设置MdiParent为MainForm?

c# mdiparent mdichild winforms

11
推荐指数
3
解决办法
5万
查看次数

如何避免MDIParent C#Win Forms中显示的多个子窗体

当用户试图打开已在MDIParent中打开的子表单时,我想避免多次出现我的子表单.避免这种情况的一种方法是禁用Controller(在我的情况下是BUTTON),但我也给了这个函数一个快捷键(Ctrl+ L).因此,如果用户键入Ctrl+ L,则会打开相同的子表单,并且我可以看到两个子表单都在MDI中.

private void leadsToolStripMenuItem_Click(object sender, EventArgs e)
    {
        frmWebLeads formWeblead = new frmWebLeads();
        formWeblead.MdiParent = this;
        formWeblead.WindowState = System.Windows.Forms.FormWindowState.Maximized;
        formWeblead.Show();

    }
Run Code Online (Sandbox Code Playgroud)

我想避免这种情况.我怎样才能做到这一点? 在此输入图像描述

在图像中,您可以看到, 当用户第一次使用菜单(LEADS)打开并且第二次通过快捷键打开时,子表单名称 在线潜在客户被打开两次.我不希望这种情况发生.如果表单已经打开,应该避免打开另一个相同的表单......怎么做?

c# mdiparent mdichild winforms

8
推荐指数
1
解决办法
3万
查看次数

如何删除MDI父窗体上的灰色背景?

我要做的是在标记为mdi容器的表格上画一些玻璃.但是,只要设置了IsMdiContainer,表单就会在其控件列表中添加一个MdiClient.此时,父表单会发生一些事情 - 几乎就像深灰色面板停靠在MdiClient所在的整个表单上.

我接下来要做的是将MdiClient控件移开一点:

    foreach(var c in Controls)
    {
        if(c is MdiClient)
        {
            var client = (MdiClient)c;
            client.BackColor = Color.Red;
            client.Dock = DockStyle.None;
            client.Size = new Size(this.Width-100, this.Height);
            break;
        }
    }
Run Code Online (Sandbox Code Playgroud)

然后,这使得实际的MdiClient区域变小,以便我们可以看到它背后的内容(托管子窗体的位),并且显然父窗体不是绘画或其他东西.

从这里可以看出:http://img525.imageshack.us/img525/8605/mdiglassproblem.png

我现在需要以某种方式获得MdiClient背后的区域(在玻璃部分呈现白色的深灰色部分)消失.

有任何想法吗?

PS - 在Vista中使用DwmExtendFrameIntoClientArea方法渲染Glass.

c# forms mdi mdiparent

7
推荐指数
2
解决办法
1万
查看次数

如何在我创建的另一个窗口中显示来自WebBrowser的弹出窗口?

我试图在我的一个应用程序中实现一个简单的Web浏览器控件.这是为了帮助将Web应用程序集成到我正在创建的工具集中.

问题是,这个网络应用程序绝对喜欢弹出窗口....

当弹出窗口打开时,它会在IE窗口中打开,该窗口不是我的主窗口所属的MDI容器窗体的子窗口.

如何通过单击我的WebBrowser中的链接创建任何和所有弹出窗口作为我的MDI容器的子项(类似于设置窗体的MDIParent属性)?

提前致谢.

c# mdiparent webbrowser-control

7
推荐指数
1
解决办法
2万
查看次数

MDIParent Tiling儿童

有没有办法轻易地平铺mdi父母的所有形式的孩子?我正在寻找Windows提供的大部分功能,平铺级联.有人知道一个简单的方法吗?

.net mdi parent mdiparent winforms

6
推荐指数
1
解决办法
2082
查看次数

C#MDI父级检测MDI Child何时关闭?

我试图在MDI父级上检测到我的MDI子窗体何时关闭,并做出相应的反应.在MDI子女关闭之前,MDI家长不应做任何事情.这是我的代码,我不确定我做错了什么,但我添加的表单关闭事件方法永远不会被调用...

如果不明显,则以下代码位于MDI父类中.

    private void keyValidation()
    {
        if (Properties.Settings.Default.Unlock == true)
            return;
        else
        {
            menu.Enabled = false;
            statusStrip.Enabled = false;

            ValidationForm vf = new ValidationForm();
            vf.MdiParent = this;
            vf.Show();
            vf.FormClosed += new FormClosedEventHandler(validationForm_FormClosed);
        }
    }

    void validationForm_FormClosed(object sender, FormClosedEventArgs e)
    {
        MessageBox.Show("Got here");
        if (Properties.Settings.Default.Unlock == true)
        {
            menu.Enabled = true;
            statusStrip.Enabled = true;
        }
    }
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

c# mdi mdiparent mdichild formclosing

6
推荐指数
1
解决办法
1万
查看次数

如何在Windows窗体的网格视图中绑定图像?

我将图像绑定到GridView资源文件夹.当我加载该窗体时,图像将是bind.But当从MDIPARENT窗体Image 调用该窗体时将不会显示.我在下面附加图像和代码.

在网格中绑定图像

DataGridViewImageColumn ic = new DataGridViewImageColumn();
 ic.HeaderText = "Payment";
 ic.Image = null;
 ic.Name = "cImg";
 ic.Width = 50;
 dtGrCustBal.Columns.Add(ic);
 foreach (DataGridViewRow row in dtGrCustBal.Rows)
 {
      DataGridViewImageCell cell = row.Cells[10] as DataGridViewImageCell;
      cell.Value = Properties.Resources.icon_payment_cash_small;       
 }
Run Code Online (Sandbox Code Playgroud)

从MDIParent致电Child

 CustomerBalance ChildCustBal = new CustomerBalance();
 ChildCustBal.MdiParent = this;
 ChildCustBal.Show();
Run Code Online (Sandbox Code Playgroud)

截图

从MDI父级加载: 从MDI父级加载页面的屏幕截图 直接加载: 直接加载页面的屏幕截图

c# datagridview mdiparent mdichild

6
推荐指数
1
解决办法
1125
查看次数

Winforms MDI"桌面"区域边界

默认的MDI父控件有一个大的"桌面"区域,可以显示多个子窗体.用户可以将表单拖动到此桌面区域的边缘,以便大多数子表单不在屏幕上.(然后滚动条出现在MDI父级中)我不喜欢这个功能.有没有办法锁定桌面区域的边缘,以便子窗体保持完全可见?

vb.net mdi mdiparent mdichild winforms

4
推荐指数
1
解决办法
2285
查看次数

合并MDI窗口的菜单条项

如何将具有相同菜单名称的父表单和子表单的菜单项合并?

c# mdiparent mdichild menuitem

4
推荐指数
1
解决办法
7510
查看次数