2008-10-22 639 views
7

Tôi đang phát triển một phần trong VB.NET. Bên trong biểu mẫu chính của tôi, tôi đang tạo một biểu mẫu mới để sử dụng làm hộp thoại. Tôi đã tự hỏi nếu có một cách để, khi đóng của hộp thoại mới, lưu cài đặt kích thước của nó cho mỗi người dùng (có thể là trong một tập tin trên máy tính của họ, thông qua XML hoặc một cái gì đó?)Lưu Kích thước Biểu mẫu Windows

Trả lời

7

bạn có thể lưu tệp vào tệp cài đặt và cập nhật sự kiện trên sự kiện 'đóng cửa'.

để thực hiện cài đặt goto Thuộc tính dự án -> cài đặt -> sau đó thực hiện cài đặt như 'hộp thoại' thuộc loại system.drawing.size.

sau đó làm điều này trong hình thức thoại của bạn:

Public Sub New() 
    InitializeComponent() 
End Sub 

Public Sub New(ByVal userSize As Size) 
    InitializeComponent() 
    Me.Size = userSize 
End Sub 

Protected Overrides Sub OnClosing(ByVal e As System.ComponentModel.CancelEventArgs) 
    MyBase.OnClosing(e) 
    My.Settings.DialogSize = Me.Size 
    My.Settings.Save() 
End Sub 

làm điều gì đó như thế này để kiểm tra và sử dụng các thiết lập:

Dim dlg As MyDialogWindow 
    If My.Settings.DialogSize.IsEmpty Then 
     dlg = New MyDialogWindow() 
    Else 
     dlg = New MyDialogWindow(My.Settings.DialogSize) 
    End If 
    dlg.ShowDialog() 
+0

Trong thiết kế cho WinForm của tôi, tôi đi dưới Properties và tôi thấy (PropertyBinding), nhưng không có tài sản DialogSize rằng Tôi có thể tìm thấy. Đây có phải là thứ bạn thiết lập thủ công trong mã hoặc trong nhà thiết kế không? –

+0

DialogSize là một Var toàn cục mà bạn cần thực hiện trong tệp cài đặt. Chuyển đến dự án -> 'bạn dự án tên' bất động sản -> Cài đặt Tab-> thêm một thiết lập gọi là "DialogSize" hay bất cứ những bạn thích kiểu System.Drawing.Size kích thước Đáng tiếc là không có trong các bit propertybinding – Hath

+0

Ok - Tôi đã tìm ra những gì bạn đang nói và đã thiết lập nó, nhưng bây giờ khi tôi cố gắng gọi nó, tôi nhận được một ConfigurationErrorsException, nói rằng hệ thống Cofniguration không khởi tạo được. Làm thế nào để tôi giải quyết vấn đề này? –

0

Bạn cũng có thể thực hiện việc này bằng giao diện người dùng do chính VB.NET cung cấp. Trong ngăn thuộc tính cho biểu mẫu, hãy xem mục có tên "(Cài đặt ứng dụng)" và sau đó trong "Thuộc tính kết nối". Bạn có thể liên kết mọi thuộc tính của biểu mẫu (bao gồm kích thước và vị trí) với giá trị cài đặt cho ứng dụng đó.

0

Khi nó quay ra, tôi tìm thấy một cách để làm điều này bằng cách sử số System.IO.IsolatedStorage

+0

Thú vị - tại sao bạn chọn IsolatedStorage? – Keithius

+0

Chăm sóc để chia sẻ mã của bạn? –

2

Bạn cũng có thể thêm cài đặt mới vào ứng dụng (kích thước) và đặt thành system.drawing.size

Sau đó, bạn đảm bảo rằng bạn đã lưu kích thước hiện tại về cài đặt khi đóng.

Private Sub myForm_FormClosing(ByVal sender As System.Object, 
          ByVal e As System.Windows.Forms.FormClosingEventArgs) _ 
          Handles MyBase.FormClosing 

    My.Settings.size = Me.Size 
    My.Settings.Save() 

End Sub 

và trên tải bạn áp dụng các kích thước mà bạn đã lưu trong các thiết lập

Private Sub myForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _ 
    Handles MyBase.Load 
    ' if this is the first time to load the form 
    ' dont set the size (the form will load with the size in the designe) 
    If Not My.Settings.size.IsEmpty Then 
     Me.Size = My.Settings.size 
    End If 
End Sub