2009-07-06 39 views
11

Làm cách nào để thay đổi màu BỐI CẢNH của MẪU MDI trong C#?Thay đổi Nền của Mẫu MDI

Tôi đã thay đổi nó bằng thuộc tính màu nền nhưng màu không bị thay đổi.

Tôi nên làm gì để thực hiện tác vụ này?

Trả lời

24

Màu nền thực tế của điều khiển MDI dựa trên màu trong Chủ đề hiện tại của Windows. Bạn phải thiết lập vật lý nền của điều khiển MdiClient bên trong WinForm.

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

Edit - Thêm nhận xét:

  1. Chúng ta cần phải lặp qua các điều khiển trong các hình thức MdiParent để tìm sự kiểm soát MdiClient đó được thêm vào khi bạn thiết lập các biểu mẫu cho phép là một MdiParent. Foreach chỉ là một sự lặp lại đơn giản của một loại thông qua một bộ sưu tập.

  2. Chúng tôi cần tìm điều khiển MdiClient trong biểu mẫu, do đó, để thực hiện điều này, chúng tôi truyền điều khiển hiện tại trong vòng lặp bằng cách sử dụng từ khóa 'as'. Sử dụng từ khóa 'as' có nghĩa là nếu dàn diễn viên không hợp lệ thì biến được đặt sẽ là rỗng. Vì vậy, chúng tôi kiểm tra xem 'khách hàng' có phải là không. Nếu có, điều khiển hiện tại trong vòng lặp không phải là điều khiển MdiClient. Ngay khi biến 'client' không phải là null, thì điều khiển mà chúng ta nắm giữ là MdiClient và chúng ta có thể thiết lập màu nền của nó.

  3. Đặt màu trở lại thành bất kỳ thứ gì bạn muốn. Chỉ cần thay thế "GetYourColour()" bằng bất kỳ màu nào bạn muốn, tức là Color.White, Color.Blue, Colour.FromArgb (v ...)

  4. Vì chỉ có 1 MdiClient, không có điểm nào tiếp tục vòng lặp vì nó chỉ là một sự lãng phí thời gian xử lý. Do đó chúng ta gọi là 'break' để thoát khỏi vòng lặp.

Hãy cho tôi biết nếu bạn muốn bất kỳ điều gì khác giải thích.

+0

Cảm ơn câu trả lời của bạn. Với sự giúp đỡ của mã hóa của bạn, bây giờ tôi có thể thay đổi màu nền của mẫu MDI. Một trợ giúp khác mà tôi cần. Vì tôi mới sử dụng C# nếu có thể bạn chỉ cần giải thích mã hóa? Cảm ơn rất nhiều !! – sheetal

+2

Chắc chắn, tôi sẽ thêm một số nhận xét vào mã số – GenericTypeTea

+1

Cảm ơn bạn rất nhiều !! Giải thích rất hay !! Thanks a lot – sheetal

0

Viết điều này trong phương thức tải của bạn về biểu mẫu MDI của bạn.

Controls.OfType<MdiClient>().FirstOrDefault().BackColor = Color.Purple; 
Các vấn đề liên quan