2013-04-08 17 views
5

Tôi có mã sau trong vb.net được viết bằng một nút.vb.net đề cập đến một biểu mẫu do chương trình tạo qua New

dim x as new frm_raw_infosheet 

bất cứ khi nào tôi nhấp vào nút, chương trình sẽ tạo một phiên bản mới của biểu mẫu mà tôi muốn.

Câu hỏi của tôi là, làm cách nào để tôi có thể tham chiếu đến từng biểu mẫu mới được tạo? Ví dụ: , tôi đã nhấp vào nút 3 lần, làm cách nào để ẩn biểu mẫu thứ 2 mà tôi đã tạo bằng nút?

tôi đã cố gắng

x.name = "Form" & incrementingvariable 

Tuy nhiên, tôi không hoàn toàn chắc chắn như thế nào tôi sẽ đề cập đến nó.

Để làm cho câu hỏi của tôi rõ ràng hơn, chúng ta hãy nói incrementingvariable chứa số 2

incrementingvariable = 2 

x bây giờ chứa tên "Form2"

Tuy nhiên, điều này trả về một lỗi

Form2.enabled = false 

Tôi không thể tham khảo Form2, Bởi vì .Net nói rằng "Form2" không tồn tại!

EDIT

Tôi hiểu nó được một lúc kể từ khi tôi hỏi điều này, nhưng đây là một bản cập nhật

Trên listboxes là tên đen của mỗi hình thức mà tôi lưu trữ sử dụng Listbox1.items.add(x.Name).

Làm cách nào để gọi một thể hiện trong bộ sưu tập? Giả sử tôi muốn tạo biểu mẫu trong danh sách hiển thị?

Trả lời

1

tôi tham khảo các câu hỏi đã được chỉnh sửa: Thay vì thêm tên của các hình thức để ListBox, bạn có thể thêm các mẫu đối tượng bản thân:

Listbox1.Items.Add(x) 

Nếu bạn đặt DisplayMember tài sản của ListBox để Name, tên của biểu mẫu được hiển thị trong hộp danh sách (như trước đây).
Bây giờ bạn có thể truy cập các đối tượng hình thức trực tiếp thông qua các phương pháp mục bộ sưu tập và lời kêu gọi 'ListBox trên chúng:

DirectCast(ListBox1.Items(2), Form).Enabled = False 

dụ này truy cập các hình thức thứ ba trong ListBox (tất nhiên bạn sẽ muốn chắc chắn bạn không truy cập vào một chỉ mục không có mặt, thuộc tính Count rất hữu ích về mặt này).
Vì các mục được lưu trữ dưới dạng đối tượng, bạn phải đưa chúng vào đối tượng Biểu mẫu trước khi bạn có thể truy cập các thành viên được xác định trong lớp Biểu mẫu.

+0

Cảm ơn bạn rất nhiều vì điều này. –

3

Tùy thuộc vào cách bạn muốn chương trình của mình hoạt động.

Nếu bạn chỉ muốn có một phiên bản biểu mẫu mở bất kỳ lúc nào, bạn có thể lưu tham chiếu được trả lại bởi new trong biến cố định, ví dụ: một biến mẫu. Sau đó, bạn có thể tham khảo biểu mẫu cũ và đóng nó bất kỳ lúc nào.

Nếu bạn cần theo dõi nhiều hơn một biểu mẫu thì bạn có thể lưu tham chiếu được trả lại bằng new trong bộ sưu tập, cũng có thể là biến mẫu.

+0

Cảm ơn bạn đã dành thời gian trả lời Marcus! Chính xác làm thế nào để bạn khai báo một biến instance thoug? làm thế nào bạn sẽ đề cập đến nó? Ý tôi là, giả sử tôi đã tạo biến mẫu này, làm cách nào để thay đổi thuộc tính văn bản của nó? Intellisense của .Net khởi động khi tôi gõ vào một biến không tồn tại. –

+0

Xin chào! Tôi đã chỉnh sửa câu hỏi. –

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