首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MDI父窗体中的标签是否不保留在子窗体的背景中?

MDI父窗体中的标签是否不保留在子窗体的背景中?
EN

Stack Overflow用户
提问于 2010-12-03 16:25:56
回答 4查看 5.9K关注 0票数 1

请指导和帮助我。

我有一个MDI父窗体,它的中心有一个标签(在中心显示应用程序名称)。在此MDI父窗体中打开窗体时,此标签应显示在新打开的窗体的背面,但在显示子窗体时,标签将显示在新打开的窗体的前面(看起来新打开的窗体位于标签和MDI父窗体之间)。

怎么管理,请指点一下。

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-04 04:46:18

代码语言:javascript
复制
public partial class MyMdiForm : Form
{
    public MyMdiForm()
    {
        InitializeComponent();
        foreach (Control control in Controls)
        {
            if (control is MdiClient)
                control.Paint += mdiBackgroundPaint;
        }
    }

    private void mdiBackgroundPaint(object sender, PaintEventArgs e)
    {
        var mdi = sender as MdiClient;
        if (mdi == null) return;

        e.Graphics.Clip = new System.Drawing.Region(mdi.ClientRectangle);
        e.Graphics.DrawString("*** YOUR NAME HERE ***",this.Font,Brushes.Red,100F,100F);
    }
}
票数 3
EN

Stack Overflow用户

发布于 2010-12-03 17:21:43

这将隐藏标签,而您有活动的MDI子项,一旦不再有活动的子项,则再次显示它。

代码语言:javascript
复制
    private void Form1_MdiChildActivate(object sender, EventArgs e)
    {
        if (ActiveMdiChild != null)
            label1.SendToBack();
        else
            label1.BringToFront();
    }

我希望这能帮到你。

票数 4
EN

Stack Overflow用户

发布于 2010-12-03 17:23:37

问题是您的标签没有添加到MdiClient (即灰色的Mdi容器),而是添加到了表单。

但不幸的是,AFAIK不可能向MdiClient添加控件。

唯一的方法是在MdiClient的Paint事件上绘制您想要的内容,如本文所建议的:

http://www.vbaccelerator.com/home/NET/Code/Libraries/Windows/MDI_Client_Area_Painting/article.asp

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4343682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档