簡體   English   中英

動態添加到VB.net中的其他表單

[英]Dynamically add to other form in VB.net

是否可以在不使用Form2的情況下將項目添加到我在Form2上的列表框中

If i = 1 Then
Form2.listbox1.items.add(item) 
elseif  i = 2 Then
Form2.listbox2.items.add(item) 
End if 

我想實現類似

Form2.listbox(i).items.add(item) '<-- I know this is not the correct way.

請幫忙

當您在窗體上有很多控件(150個列表框)時,最好在運行時動態創建它們,將它們填充項目,然后將列表框添加到Form2上的控件中。 首先,您必須加載Form2,(但它尚未可見)。

在下面的代碼中,首先將ListBoxes添加到Form2(不必是可見的,但必須實例化)。 然后通過Casting設置或獲取所有ListBox項的值,其中控件的名稱和類型用於更改控件參數。 當您知道控件的名稱,並且僅在知道控件名稱的情況下想要訪問和更改控件的參數時,將使用強制轉換“ Ctype”命令。

Dim myfrm2 As New Form2 'instantiates Form 2 as an object
'myfrm2.Show()  ' Use this if you want to show Form2 on the screen
'next, create 150 ListBox controls and add them to Form2's control
Dim Cnt as Integer = 0
For k = 1 To 6
   For i = 1 to 25
      Cnt += 1
      Dim lbx As New ListBox
      str = "Form2_ListBox_" & Cnt
      lbx.Name = str
      lbx.Left = (k-1) * 80 + 50 
      lbx.Top = 50 + 25 * i
      lbx.Width = 50
      lbx.TextAlign = System.Drawing.ContentAlignment.MiddleRight
      myfrm2.Controls.Add(lbx)
   Next
Next 
'Assume there are 10 list items per list box
'To set ListBox values in Form 2:
Dim arraylbvalues(150,10) as Object
'fill array above with text or numbers
For i = 1 to 150
   For j = 1 to 10
      CType(myfrm2.Controls("Form2_ListBox_" & i ), ListBox).Items(j) = arraylbvalues(i, j) 
   Next j
Next i

'To get ListBox values in Form 2:
For i = 1 to 150
   For j = 1 to 10
      arraylbvalues(i, j) = CType(myfrm2.Controls("Form2_ListBox_" & i ), ListBox).Items(j)
   Next j
Next i

另外,如果尚未創建Form2,則將上面的第一個命令修改為:

Dim myfrm2 as New Form

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM