Tôi sẽ xem xét sử dụng thuộc tính Control.Dock
cùng với một trong các giá trị điều tra DockStyle
.
Bạn cũng có thể cần phải chơi với số Layout
để có thể bố trí các điều khiển của biểu mẫu khác nhau tùy thuộc vào số DockStyle
được chọn.
Bạn sẽ cần, theo quan điểm của tôi, để xem xét tài sản Control.Location
để bạn biết giá trị DockStyle
để gắn biểu mẫu của mình với.
EDIT # 1
Windows Form của bạn có một tài sản Dock
vì nó thừa hưởng từ Control
.
Hãy xem xét những điều sau đây:
Mỗi lần hình thức của bạn đến gần hơn với bên cánh phải, bạn của màn hình, ví dụ, hoặc các container MDI, bạn muốn cập cảng đúng, phải không? (Từ nhỏ chơi ở đây ... = P) Vì vậy, bạn phải đăng ký sự kiện Control.LocationChanged
.
private void myForm_LocationChanged(object sender, EventArgs e) {
if (this.Location.X > 900) then
this.Dock = DockStyle.Right;
else if (this.Location.X < 150) then
this.Dock = DockStyle.Left;
else if (this.Location.Y > 600) then
this.Dock = DockStyle.Bottom;
else if (this.Location.Y < 150) then
this.Dock = DockStyle.Top;
else
this.Dock = DockStyle.None;
}
Thật vậy, thay vì giá trị không đổi, bạn nên sử dụng độ phân giải màn hình hiện tại và tính toán một tỷ lệ từ nó nơi bạn muốn docking của bạn xảy ra.
*** Tuyên bố từ chối trách nhiệm: **** Mã này được cung cấp như hiện trạng và chưa được kiểm tra. Thuật toán này hy vọng đủ để hướng dẫn bạn qua quá trình kết nối khi bạn cần. Hỗ trợ thêm có thể được cung cấp theo yêu cầu. * =)
Có vẻ như thuộc tính Form.DesktopLocation
là công cụ đóng chặt cho công việc như cửa sổ chính của bạn, ví dụ như thùng chứa MDI của bạn. Đối với các cửa sổ khác, tôi sẽ đi cùng với một cái gì đó giống như mẫu mã được cung cấp.
Điều này có hữu ích không?
EDIT # 2
Nếu bạn muốn ngăn chặn chồng chéo Mẫu của, có lẽ là phương pháp Control.BringToFront()
thể làm điều đó trước hoặc sau cuộc gọi của bạn với phương pháp Control.Show()
, tùy thuộc vào những gì tốt nhất cho bạn.
Nguồn
2010-07-09 16:06:08
xin chào, cảm ơn bạn đã phản hồi. Tôi là một chút mới để sử dụng các chức năng mở rộng của Visual Studio 2008 và tôi hoàn toàn không biết làm thế nào tôi có thể sử dụng tài sản Control.Dock. Bạn có thể vui lòng cho tôi một số ví dụ về cách tôi có thể sử dụng các thuộc tính đó không? thanks :) – Smiley
Đó là để điều khiển docking trong một hình thức, không phải để lắp ghép toàn bộ biểu mẫu. –
@Jouke Van Der Maas: Tôi đoán bạn đã không đọc tất cả câu trả lời của tôi. Tôi đề cập đến thuộc tính 'DesktopLocation', nghĩa là, để gắn toàn bộ cửa sổ trên màn hình nền. Hơn nữa, tôi đề nghị rằng đây có thể là một công cụ tốt hơn cho công việc sau khi OP ra trước ý tưởng của mình. Vui lòng sửa đổi nhận xét của bạn cho phù hợp. –