2009-05-18 74 views
6

Tôi gắn thanh tác vụ sang bên trái, khiến nhiều cửa sổ mở bên dưới thanh tác vụ.Cách thích hợp để tạo Biểu mẫu không bị che khuất bởi thanh tác vụ Windows là gì?

Không có giá trị System.Windows.Form.FormStartPosition nào có tính đến thanh tác vụ ngoại trừ Hướng dẫn. Đây có phải là do thiết kế không? Đó là bực bội. Tôi muốn tôn trọng giá trị vị trí màn hình và màn hình mặc định mà hệ điều hành nên thực thi.

+0

Vui lòng mô tả câu hỏi của bạn nhiều hơn, nó không quá rõ ràng – abatishchev

+0

Tôi bắt đầu gắn mỏ ở bên phải vì điều này quá khó chịu. Vị trí "mặc định" xuất phát từ API CreateWindowEx đã có lỗi này mãi mãi và có thể sẽ tồn tại mãi mãi hơn. –

Trả lời

5

Vâng, nếu WinForms không tự động thực hiện việc này, bạn có thể phải đặt thủ công điều này theo cách thủ công.

Bạn sẽ phải sử dụng System.Windows.Forms.Screen.PrimaryScreen.WorkingArea để lấy diện tích màn hình mà không có thanh tác vụ và sử dụng Hình chữ nhật đó để tính diện tích khởi động cho biểu mẫu theo cách thủ công và đặt thành thuộc tính Bound của Form. (Hãy chắc chắn rằng biểu mẫu đang sử dụng FormStartPosition.Manual).

+1

Tôi cũng phải kiểm tra xem thanh tác vụ có được đặt thành tự động ẩn hay không và nếu người dùng muốn thanh tác vụ xuất hiện trên cửa sổ. Argh. –

+0

Tôi thường thấy rằng nếu bạn muốn chương trình của bạn trở nên "đẹp" và không có tất cả những chú chó cưng nhỏ đó thì bạn thực sự có rất nhiều công việc phụ trên tay. Và đó là một sự xấu hổ thực sự rằng chỉ có rất ít người dùng sẽ đánh giá cao điều đó (nhưng bản thân bạn là một người dùng như vậy là một lý do đủ quan trọng để thực hiện công việc: D) –

1

Tôi nghĩ rằng không có cách nào để thực hiện điều đó. Tôi không thấy bất kỳ lý do nào để có một lý do như vậy.

Bạn có thể định vị taskbar position và đặt biểu mẫu của mình ở đó theo cách thủ công.

+2

Lý do tôi đưa ra là không đủ? Vị trí bắt đầu mặc định của một cửa sổ nên tôn trọng tasbkar nếu "Giữ thanh tác vụ trên đầu các cửa sổ khác" được chọn. Xem OS X. Cách khác là tìm tùy chọn trên được đặt thành, tìm màn hình trên cửa sổ nào được mở theo mặc định, khám phá xem thanh tác vụ có được gắn vào cửa sổ hay không và nếu tính toán vị trí bắt đầu theo cách thủ công . –

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