панели и дочерние формы в winforms - PullRequest
1 голос
/ 19 марта 2011

я добавил панель в родительской форме win. родительская форма разворачивается в полном окне при ее открытии. Кроме того, высота панели также равна размеру родительской формы, то есть она находится в полном развернутом окне. теперь, когда я открываю дочернюю форму, щелкая элемент меню на родительской форме, дочерняя форма скрывается за панелью, то есть не отображается. как вывести его над панелью?

1 Ответ

2 голосов
/ 19 марта 2011

Формы по умолчанию могут быть дочерними ТОЛЬКО от родительской формы MDI.Если вы хотите установить панель в качестве родителя формы, вам нужно использовать функцию SetParent Win32API.

public partial class MDIParentForm: Form
{
    [DllImport("user32.dll", SetLastError = true)]
    static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);

    public MDIParentForm()
    {
        InitializeComponent();
    }

    private void AddChildWindowMenuItem_Click(object sender, EventArgs e)
    {
        var child = new MDIChildForm();
        child.Show();
        SetParent(child.Handle, BackgroundPanel.Handle);
    }
}
...