Изменить фон формы MDI

Как я могу изменить фоновый цвет формы MDI в C #?

Я изменил его, используя свойство background color, но цвет не изменился.

Что я должен сделать, чтобы выполнить эту задачу?

Ответы на вопрос(2)

Запишите это в свой метод загрузки формы MDI.

Controls.OfType<MdiClient>().FirstOrDefault().BackColor = Color.Purple;
Решение Вопроса

темы Windows. Вы должны физически установить фон элемента управления MdiClient внутри WinForm.

    // #1
    foreach (Control control in this.Controls)
    {
        // #2
        MdiClient client = control as MdiClient;
        if (!(client == null))
        {
            // #3
            client.BackColor = GetYourColour();
            // 4#
            break;
        }
    }

Edit - Добавлены комментарии:

Нам нужно пройтись по элементам управления в форме MdiParent, чтобы найти элемент управления MdiClient, который добавляется, когда вы задаете для формы значение MdiParent. Foreach - это простая итерация типа в коллекции.

Нам нужно найти элемент управления MdiClient в форме, поэтому для этого мы приводим текущий элемент управления в цикле, используя ключевое слово «as». Использование ключевого слова «как» означает, что если приведение недействительно, то устанавливаемая переменная будет нулевой. Поэтому мы проверяем, является ли «клиент» пустым. Если это так, текущий элемент управления в цикле не является элементом управления MdiClient. Как только переменная 'client' не является нулевой, тогда у нас есть элемент управления MdiClient, и мы можем установить его фоновый цвет.

Установите задний план на все, что вы хотите. Просто замените «GetYourColour ()» на любой цвет, который вы хотите, то есть Color.White, Color.Blue, Colour.FromArgb (и т. Д.) ...

Поскольку существует только 1 MdiClient, бессмысленно продолжать цикл, поскольку это просто трата времени на обработку. Поэтому мы называем break для выхода из цикл

Дай мне знать, если ты хочешь что-нибудь еще объяснить.

 sheetal07 июл. 2009 г., 19:18
Большое спасибо!! Очень хорошее объяснение !! Большое спасиб
 Idle_Mind04 мая 2013 г., 17:32
Я предпочитаю:foreach (Control control in this.Controls) { if (control is MdiClient) { control.BackColor = Color.Red; break; } }
 sheetal07 июл. 2009 г., 05:53
Спасибо за ваш ответ. С помощью вашего кода я теперь могу изменить цвет фона формы MDI. Еще одна помощь, в которой я нуждаюсь. Так как я новичок в C #, если возможно, вы можете просто объяснить кодировку, пожалуйста? Большое спасибо!
 djdd8707 июл. 2009 г., 09:29
Конечно, я добавлю несколько комментариев к коду

Ваш ответ на вопрос