Изменить цвет фона или фоновое изображение формы контейнера MDI в .net - PullRequest
3 голосов
/ 30 марта 2010

Мне нужно изменить фоновый рисунок или фоновое изображение родителя mdi в моем приложении. Я попытался изменить цвет фона или указать фоновое изображение, это не сработает. Я также попытался зациклить элементы управления в форме, чтобы получить mdiclient и изменить его задний цвет, также нулевой результат

Ответы [ 4 ]

1 голос
/ 07 марта 2012
Private ClientControl As MdiClient

    Public Sub New()
        InitializeComponent()

        ClientControl = Nothing
        For Each Ctl As Control In Me.Controls
            ClientControl = TryCast(Ctl, MdiClient)
            If ClientControl IsNot Nothing Then Exit For
        Next
    End Sub

'iN FORM LOAD

ClientControl.BackColor = Color.Cyan
1 голос
/ 30 марта 2010

Может быть, это поможет? http://support.microsoft.com/kb/319465

0 голосов
/ 06 апреля 2013

Попробуйте, все работает.

foreach (Control control in this.Controls)
{

    // #2
    MdiClient client = control as MdiClient;
    if (!(client == null))
    {
        // #3
        client.BackColor = GetYourColour();
        // 4#
        break;
    }

}
0 голосов
/ 16 февраля 2012

Если вы делаете простой цвет, попробуйте приведенный ниже код, если вы пытаетесь установить изображение, вы можете использовать BackgroundImage с BackgroundImageLayout

 MdiClient ctlMDI;
            foreach (Control ctl in this.Controls)
            {
                try
                {
                    ctlMDI = (MdiClient)ctl;

                    // Set the BackColor of the MdiClient control.
                    ctlMDI.BackColor = Color.DarkRed;
                }
                catch (InvalidCastException exc)
                {
                    // Catch and ignore the error if casting failed.
                }
            }
...