2009-12-04 50 views
9

Làm cách nào tôi có thể định vị biểu mẫu ở góc dưới cùng bên phải của màn hình khi biểu mẫu tải? Tôi đang sử dụng Visual Basic 2010 Express.Biểu mẫu vị trí ở góc dưới bên phải của màn hình trong hình ảnh cơ bản

Cảm ơn

EDIT: Tôi đã làm điều này và có vẻ như nó hoạt động tốt.

Dim x As Integer 
Dim y As Integer 
x = Screen.PrimaryScreen.WorkingArea.Width - 400 
y = Screen.PrimaryScreen.WorkingArea.Height - 270 
Me.Location = New Point(x, y) 
+0

Cần thêm thông tin về điều này: Bạn đang sử dụng VB hoặc VB.NET? Bạn có biết phiên bản nào không? Bạn có đăng ký một ứng dụng MDI/SDI không? –

+0

Xác định vị trí hoặc vị trí? Và phiên bản nào của VB? –

+0

hình ảnh cơ bản 2010 thể hiện, thực sự tôi có nghĩa là định vị –

Trả lời

5

Bạn cần phải thay đổi Form.StartPosition sang chế độ Manual và thay đổi Vị trí tài sản của các hình thức

ví dụ how to set form startup location/position manually?

hoặc

VB.net - Form Start Position Upper Left

sử dụng Form.StartPosition PropertyForm.Location Property

+0

cảm ơn bạn rất nhiều, đã nhận được nó –

+0

Đó chỉ là một nửa câu trả lời - quan trọng không kém và * nhiều khó khăn hơn để theo dõi mặc dù nó thực sự là điều mà mọi lập trình viên cần biết (và câu hỏi chính) là làm thế nào để có được kích thước và vị trí của khu vực làm việc của máy tính để bàn. Tôi cuối cùng đã làm điều này trong Delphi, lâu hơn tôi quan tâm để nhớ và tôi chưa tìm thấy câu trả lời .NET ... (hoặc ít nhất tôi không thể nhớ như vậy làm). – Murph

+1

ít nhất tôi có một điểm bắt đầu –

0

Bạn có thể lặp qua các biểu mẫu con và thực hiện một số tính toán dựa trên các thuộc tính trên cùng và bên trái (có thể muốn kết hợp các ô đó với các thuộc tính Chiều rộng và Chiều cao tùy thuộc vào yêu cầu của bạn là "dưới cùng bên trái")

HTH, Đánh dấu

7
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    Me.Visible = True 
    Dim x As Integer 
    Dim y As Integer 
    x = Screen.PrimaryScreen.WorkingArea.Width 
    y = Screen.PrimaryScreen.WorkingArea.Height - Me.Height 

    Do Until x = Screen.PrimaryScreen.WorkingArea.Width - Me.Width 
     x = x - 1 
     Me.Location = New Point(x, y) 
    Loop 

End Sub 
+0

Cảm ơn điều này đã giúp tôi –

+0

Như tên cho thấy, điều này chỉ đặt nó ở góc của màn hình * chính *. Với nhiều màn hình, điều đó thường là sai và làm phiền người dùng. – user1318499

+0

Ồ, ai đó không thích môn toán nhiều như tôi. Mã này rất tuyệt, nhưng cách tiếp cận với "Do Until" không đẹp. – tmighty

3

chỉ đơn giản là mẹo này cho tôi: các bài viết ở trên/bên trái của nhiệm vụ có thể xảy ra.

Dim x As Integer 
     Dim y As Integer 
     x = Screen.PrimaryScreen.WorkingArea.Width - Me.Width 
     y = Screen.PrimaryScreen.WorkingArea.Height - Me.Height 
     Me.Location = New Point(x, y) 
3

Trung tâm màn hình:

Me.Location = New Point((Screen.PrimaryScreen.WorkingArea.Width - Me.Width)/2, (Screen.PrimaryScreen.WorkingArea.Height - Me.Height)/2) 

góc dưới bên phải màn hình góc:

Me.Location = New Point(Screen.PrimaryScreen.WorkingArea.Width - Me.Width, Screen.PrimaryScreen.WorkingArea.Height - Me.Height) 
0

Nếu bạn muốn xác định vị trí các hình thức trên con trỏ màn hình đang bật, sử dụng:

' Get Active Screen Cursor is On, rather than assuming user on PrimaryScreen 
Dim scr As Screen = Screen.FromPoint(Cursor.Position) 

Me.Location = New Point(scr.WorkingArea.Right - Me.Width, scr.WorkingArea.Bottom - Me.Height) 
0

bạn có thể thử như

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.StartPosition = FormStartPosition.Manual Me.Location = Screen.GetWorkingArea(Me).Location End Sub

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