question

DucNguyen-0389 avatar image
0 Votes"
DucNguyen-0389 asked XingyuZhao-MSFT answered

I'm trying to do a loop for this and this is what I did, but it will not work

I want to make all the labels, checkboxes and comboboxes to Enabled when the combobox item is 0.




     For i = 1 To 5
         Dim MycbmQty As ComboBox = CType(Me.Controls("cbmQty" & i), ComboBox)
         Dim myLabel As Label = CType(Me.Controls("lblSumname" & i), Label)
         Dim MybtnSum As Button = CType(Me.Controls("btnSum" & i), Button)
         Dim myLabel2 As Label = CType(Me.Controls("lblSumPrice" & i), Label)
         Dim myLabel3 As Label = CType(Me.Controls("lblPriceTit" & i), Label)
         Dim myLabel4 As Label = CType(Me.Controls("lblQtyTit" & i), Label)
         Dim mychkname As CheckBox = CType(Me.Controls("chkName" & i), CheckBox)

         If MycbmQty.SelectedIndex = 0 Then
             myLabel.Enabled = False
             MybtnSum.Enabled = False
             myLabel2.Enabled = False
             myLabel3.Enabled = False
             myLabel4.Enabled = False
             mychkname.Checked = False
             MycbmQty.Enabled = False
         End If
     Next



However, it will work if I do this instead.

  Private Sub cbmQty1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbmQty1.SelectedIndexChanged
        
     If cbmQty1.SelectedIndex = 0 Then
         lblSumName1.Enabled = False
         btnSum1.Enabled = False
         lblSumPrice1.Enabled = False
         lblPriceTit1.Enabled = False
         lblQtyTit1.Enabled = False
         cbmQty1.Enabled = False
         chkName1.Checked = False
     End If

       
 End Sub



 Private Sub cbmQty2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbmQty2.SelectedIndexChanged
      
     If cbmQty2.SelectedIndex = 0 Then
         lblSumName2.Enabled = False
         btnSum2.Enabled = False
         lblSumPrice2.Enabled = False
         lblPriceTit2.Enabled = False
         lblQtyTit2.Enabled = False
         cbmQty2.Enabled = False
         chkName2.Checked = False
     End If


 End Sub

 Private Sub cbmQty3_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbmQty3.SelectedIndexChanged
       
     If cbmQty3.SelectedIndex = 0 Then
         lblSumName3.Enabled = False
         btnSum3.Enabled = False
         lblSumPrice3.Enabled = False
         lblPriceTit3.Enabled = False
         lblQtyTit3.Enabled = False
         cbmQty3.Enabled = False
         chkName3.Checked = False
     End If


 End Sub

 Private Sub cbmQty4_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbmQty4.SelectedIndexChanged
        
     If cbmQty4.SelectedIndex = 0 Then
         lblSumName4.Enabled = False
         btnSum4.Enabled = False
         lblSumPrice4.Enabled = False
         lblPriceTit4.Enabled = False
         lblQtyTit4.Enabled = False
         cbmQty4.Enabled = False
         chkName4.Checked = False
     End If


 End Sub

 Private Sub cbmQty5_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbmQty5.SelectedIndexChanged
       
     If cbmQty5.SelectedIndex = 0 Then
         lblSumName5.Enabled = False
         btnSum5.Enabled = False
         lblSumPrice5.Enabled = False
         lblPriceTit5.Enabled = False
         lblQtyTit5.Enabled = False
         cbmQty5.Enabled = False
         chkName5.Checked = False
     End If


 End Sub
dotnet-visual-basic
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

1 Answer

XingyuZhao-MSFT avatar image
0 Votes"
XingyuZhao-MSFT answered DucNguyen-0389 commented

Hi anonymous user ,
I make a test based on your question, and you can refer to the following code:

     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
         For i = 1 To 5
             Dim MycbmQty As ComboBox = CType(Me.Controls("cbmQty" & i), ComboBox)
             AddHandler MycbmQty.SelectedIndexChanged, AddressOf cbmQty_SelectedIndexChanged
         Next
     End Sub
     Private Sub cbmQty_SelectedIndexChanged(sender As Object, e As EventArgs)
         For i = 1 To 5
             Dim MycbmQty As ComboBox = CType(Me.Controls("cbmQty" & i), ComboBox)
             Dim myLabel As Label = CType(Me.Controls("lblSumname" & i), Label)
             Dim MybtnSum As Button = CType(Me.Controls("btnSum" & i), Button)
             Dim myLabel2 As Label = CType(Me.Controls("lblSumPrice" & i), Label)
             Dim myLabel3 As Label = CType(Me.Controls("lblPriceTit" & i), Label)
             Dim myLabel4 As Label = CType(Me.Controls("lblQtyTit" & i), Label)
             Dim mychkname As CheckBox = CType(Me.Controls("chkName" & i), CheckBox)
             If MycbmQty.SelectedIndex = 0 Then
                 myLabel.Enabled = False
                 MybtnSum.Enabled = False
                 myLabel2.Enabled = False
                 myLabel3.Enabled = False
                 myLabel4.Enabled = False
                 mychkname.Checked = False
                 MycbmQty.Enabled = False
             End If
         Next    
     End Sub

Hope it could be helpful.

Best Regards,
Xingyu Zhao


If the answer is helpful, please click "Accept Answer" and upvote it.
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.


5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.