2011-03-19 24 views
10

Tôi có ứng dụng WinForms và tôi có Bảng điều khiển lớn trong đó. Và bên trong Panel đó là một loạt các thứ, bao gồm một bảng điều khiển nhỏ thứ hai.Vô hiệu hóa Bảng điều khiển dành cho cha mẹ, trong khi vẫn giữ bảng con được bật

Khi một sự kiện nào đó xảy ra, tôi muốn bảng điều khiển lớn trở thành Enabled = false và tôi vẫn muốn bảng điều khiển nhỏ được Bật. Tôi có thể làm được không? Tôi đã cố gắng để chỉ kích hoạt lại bảng điều khiển nhỏ sau khi tôi đã vô hiệu hóa bảng điều khiển lớn, nhưng không có worky.

Hoặc, làm thế nào tôi có thể làm cho nó để bảng điều khiển nhỏ là "trên đầu trang", nhưng không phải "bên trong" bảng điều khiển lớn?

Tôi lấy một đoán hoang dã và cố gắng:

tinyPanel.Parent = null; 

tinyPanel.Parent = this;

Nhưng, đó chỉ làm cho tinyPanel biến mất.

Trả lời

14

Không, điều này là không thể.Tất cả điều khiển con bị tắt khi cha mẹ của chúng bị vô hiệu hóa. Đó đơn giản là cách Windows hoạt động; bạn sẽ không thể thay đổi nó.

Bạn cần tìm một cách khác để giải quyết vấn đề của mình. Cấp lại quyền kiểm soát một tùy chọn, nhưng cách bạn đang cố gắng thực hiện điều đó là không chính xác. Bạn cần phải loại bỏ nó từ Controls collection cho "bảng điều khiển lớn", và sau đó thêm nó vào bộ sưu tập Controls cho biểu mẫu của bạn. Sau đó, bạn sẽ có thể thay đổi trạng thái cho phép của cả hai điều khiển độc lập.

+0

Cảm ơn @Cody :) –

0

Tôi không nghĩ rằng bạn có thể thực hiện kiểm soát được bật trong khi kiểm soát của phụ huynh bị tắt.

+0

Hmmm ... Vì vậy, có thể nếu tôi thay đổi thứ tự z của tinyPanel, nó có thể hoạt động? Hoặc tôi đang sử dụng trí tưởng tượng của tôi quá nhiều –

+2

Z thứ tự không có gì để làm với điều khiển cha mẹ. Chúng là các thuộc tính trực giao. –

+0

@Cody Grey: bạn có nhiều khả năng đúng, tôi nghĩ rằng tôi đã làm rối tung và làm cho nó lộn xộn với thứ tự của các điều khiển gắn kết như các công cụ. Đang sửa câu trả lời của tôi ngay bây giờ – Dyppl

Các vấn đề liên quan