簡體   English   中英

MDI父表單中的標簽不保留在子表單的背景中嗎?

[英]label in MDI parent form do not remain in background of child form?

請指導並幫助我。

我有一個MDI父窗體,該窗體的中心有一個標簽(以在中心顯示應用程序名稱)。 在此MDI父級中打開表單時,此標簽應顯示在新打開的表單的背面,但在顯示子表單時,標簽將出現在新打開的表單的前面(看起來像新打開的表單位於標簽和MDI父級之間)。

如何管理,請指導我。

謝謝

當您有活躍的MDI子級時,這將隱藏該標簽。一旦不再有活躍的子級,則再次顯示該標簽。

    private void Form1_MdiChildActivate(object sender, EventArgs e)
    {
        if (ActiveMdiChild != null)
            label1.SendToBack();
        else
            label1.BringToFront();
    }

我希望這有幫助。

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);
    }
}

問題是您的標簽沒有添加到MdiClient (即灰色Mdi容器),而是添加到了表單。

但不幸的是,對於AFAIK,無法向MdiClient添加控件。

唯一的方法是在MdiClient的Paint事件上繪制所需的內容,如本文所建議:

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

好吧,您的MDI父窗口的子控件的Z順序顯然有問題。 (父級的子級控件包括您的標簽以及任何MDI文檔窗口。)

您尚未顯示任何代碼,因此我無法發布特定的解決方案。 也許看看SendToBack方法 :您可以嘗試調用:

yourBackgroundLabel.SendToBack();

當您打開新的MDI(子/文檔)窗口時。

好吧,我做了一個把戲,對我有用。 我們通常在中間寫一個應用程序名稱,並希望它顯示給用戶。 許多人說,MdiParent僅適用於Forms,而不適用於其他工具,例如我們不能在MdiChild表單后面隱藏標簽/面板。

所以我要做的是在new Form寫所有內容,例如應用程序名稱,聯系人,電子郵件等,等等,例如frmMdiBody ,設置其formBorderStyle = None並設置所需的表單長度,即StartPosition = CenterScreen並在Timer.Tick ,我寫了以下內容:(在Load事件中對我不起作用)

  Dim NewMDIChild As frmMdiBody = MdiChildren.OfType(Of frmMdiBody)().SingleOrDefault
  If NewMDIChild Is Nothing Then
      NewMDIChild = New frmMdiBody
      NewMDIChild.MdiParent = Me
      NewMDIChild.Show()
  End If

上面的代碼還檢查是否打開了一個窗體,以便在我們編寫Timer.Tick事件時不會一次又一次打開許多frmMdiBody

如果我錯了,有人可以糾正我。 如果看起來很吸引人,我也會做更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM