Results 1 to 18 of 18

Thread: Combo Box triggers another comboxbox display

  1. #1

    Thread Starter
    Frenzied Member
    Join Date
    Feb 2009
    Posts
    1,058

    Combo Box triggers another comboxbox display

    Hi,

    On my form I have 3 combo boxes,

    CmbTruckTyp (has dropdownlist of Daf & Mercedes Benz)
    cmbDafModels (A, B , C)
    cmdMercBenzModels (D, E, F)


    On Form Load (by default)

    Select Truck Type = CmbTruckTyp (Daf is at the top) Select Model = cmbDafModels (set to visible at form load and cmdMercBenzModels set to false)

    Now when a user from the dropdownlist on CmbTruckTyp select Mercedes Benz I want to hide the contents of cmbDafModels and display cmdMercBenzModels instead.

    How can I achieve that? Is it the right approach to do it? I might have other 3 combo boxes to add...

    Tried;

    Code:
    Private Sub CmbTruckTyp_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmbTruckTyp.SelectedIndexChanged
    
            If Me.CmbTruckTyp.Text = "Mercedes-Benz" Then
                cmdMercBenzModels.Visible = True
            Else
                cmbDafModels.Visible = False
            End If
    
            If Me.CmbTruckTyp.Text = "Daf" Then
                cmbDafModels.Visible = True
            Else
                cmdMercBenzModels.Visible = False
            End If
    
        End Sub
    No errors, but doesnt work!!

    When I Select Mercendez Benz from the dropdownlist, cmbDafModels disappears but cmdMercBenzModels is not visible.
    When I click Daf again cmbDafModels doesnt reappear.

    Many thanks
    Last edited by dr223; Aug 30th, 2012 at 09:14 AM.

  2. #2
    PowerPoster dunfiddlin's Avatar
    Join Date
    Jun 2012
    Posts
    8,245

    Re: Combo Box triggers another comboxbox display

    vb.net Code:
    1. Private Sub CmbTruckTyp_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmbTruckTyp.SelectedIndexChanged
    2.  
    3.         If Me.CmbTruckTyp.Text = "Mercedes-Benz" Then '.Text is anything typed in so it's "" here and goes to Else
    4.             cmdMercBenzModels.Visible = True
    5.         Else
    6.             cmbDafModels.Visible = False 'Daf box disappears
    7.         End If
    8.  
    9.         If Me.CmbTruckTyp.Text = "Daf" Then '.Text is still "" so to Else
    10.             cmbDafModels.Visible = True
    11.         Else
    12.             cmdMercBenzModels.Visible = False 'Merc box disappears
    13.         End If
    14.  
    15.     End Sub

    vb.net Code:
    1. Private Sub CmbTruckTyp_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmbTruckTyp.SelectedIndexChanged
    2.  
    3.         If Me.CmbTruckTyp.SelectedItem = "Mercedes-Benz" Then
    4.             cmdMercBenzModels.Visible = True
    5.                    cmbDafModels.Visible = False
    6. Else
    7.             cmbDafModels.Visible = True
    8.             cmdMercBenzModels.Visible = False
    9.         End If
    10.  
    11.     End Sub

  3. #3

    Thread Starter
    Frenzied Member
    Join Date
    Feb 2009
    Posts
    1,058

    Re: Combo Box triggers another comboxbox display

    When I used the second code I received the error;


    InvalidCastException was unhandled

    Overload resolution failed because no Public '=' can be called with these arguments:
    'Public Shared Operator =(a As String, b As String) As Boolean':


    Thanks

  4. #4
    PowerPoster dunfiddlin's Avatar
    Join Date
    Jun 2012
    Posts
    8,245

    Re: Combo Box triggers another comboxbox display

    It works without any problems on my machine, and that error doesn't relate to anything in the code as I have it. I'm assuming that cmdMercBenzModels is just a typo you made in naming the box and it's therefore valid. Otherwise I can't see anything that could be problematic.

  5. #5

    Thread Starter
    Frenzied Member
    Join Date
    Feb 2009
    Posts
    1,058

    Re: Combo Box triggers another comboxbox display

    Thanks - Changed cmdMercBenzModels to cmbMercBenzModels

    Still I receive the same error at runtime
    Last edited by dr223; Aug 31st, 2012 at 08:54 AM.

  6. #6
    PowerPoster dunfiddlin's Avatar
    Join Date
    Jun 2012
    Posts
    8,245

    Re: Combo Box triggers another comboxbox display

    Please post your revised code.

  7. #7
    Karen Payne MVP kareninstructor's Avatar
    Join Date
    Jun 2008
    Location
    Oregon
    Posts
    6,713

    Re: Combo Box triggers another comboxbox display

    Quote Originally Posted by dr223 View Post
    When I used the second code I received the error;


    InvalidCastException was unhandled

    Overload resolution failed because no Public '=' can be called with these arguments:
    'Public Shared Operator =(a As String, b As String) As Boolean':


    Thanks
    This will work with Option Strict Off but not with Option Strict On
    Code:
    If Me.CmbTruckTyp.SelectedItem = "Mercedes-Benz" Then
    This is the correct way for Option Strict On
    Code:
    If Me.CmbTruckTyp.SelectedItem.ToString = "Mercedes-Benz" Then

  8. #8

    Thread Starter
    Frenzied Member
    Join Date
    Feb 2009
    Posts
    1,058

    Re: Combo Box triggers another comboxbox display

    Ok - Tried

    Code:
    If Me.CmbTruckTyp.SelectedItem.ToString = "Mercedes-Benz" Then
    When I select any other value not Mercedez-Benz - cmdMercBenzModels disappears and I receive an error as

    NullReferenceException was unhandled
    Object reference not set to an instance of an object.


    Code:
    If Me.CmbTruckTyp.SelectedItem.ToString = "Mercedes-Benz" Then
                cmbMercBenzModels.Visible = True
                cmbDafModels.Visible = False
            Else
                cmbDafModels.Visible = True
                cmbMercBenzModels.Visible = False
    
            End If

  9. #9

    Thread Starter
    Frenzied Member
    Join Date
    Feb 2009
    Posts
    1,058

    Re: Combo Box triggers another comboxbox display

    I also set Option Strict ON and tried both codes I still have the same error - any help please

  10. #10
    Lively Member
    Join Date
    May 2010
    Posts
    103

    Re: Combo Box triggers another comboxbox display

    Try this?

    Code:
    Private Sub CmbTruckTyp_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmbTruckTyp.SelectedIndexChanged
     
     Select Case Me.CmbTruckTyp.SelectedItem.ToString
    
        Case "Mercedes-Benz"
             cmdMercBenzModels.Visible = True
             cmbDafModels.Visible = False
        Case "Daf"
             cmdMercBenzModels.Visible = False
             cmbDafModels.Visible = True
        Case Else
             cmdMercBenzModels.Visible = False
             cmbDafModels.Visible = False
    
      End Select
    
    End Sub
    Last edited by MotoX646; Sep 2nd, 2012 at 01:44 PM.

  11. #11

    Thread Starter
    Frenzied Member
    Join Date
    Feb 2009
    Posts
    1,058

    Re: Combo Box triggers another comboxbox display

    Ok Tried this ;

    Code:
     Select Case Me.CmbTruckTyp.SelectedItem.ToString
    
        Case "Mercedes-Benz"
             cmdMercBenzModels.Visible = True
             cmbDafModels.Visible = False
        Case "Daf"
             cmdMercBenzModels.Visible = False
             cmbDafModels.Visible = True
        Case Else
             cmdMercBenzModels.Visible = False
             cmbDafModels.Visible = False
    
      End Select
    At run time, I have the error -

    NullReferenceException was unhandled by user code
    Object Reference not set to an instance of an object

    This line is higlighted in yellow;

    Code:
    Select Case Me.CmbTruckTyp.SelectedItem.ToString
    ANy assistance please

  12. #12
    Lively Member
    Join Date
    May 2010
    Posts
    103

    Re: Combo Box triggers another comboxbox display

    Quote Originally Posted by dr223 View Post
    NullReferenceException was unhandled by user code
    Object Reference not set to an instance of an object

    This line is higlighted in yellow;

    Code:
    Select Case Me.CmbTruckTyp.SelectedItem.ToString
    You are getting that error because nothing is selected in the combobox. Your combobox's "selecteditem" is null. Your combobox must select something... By any chance do you have "CmbTruckTyp.SelectedItem = Nothing" anywhere in your code?

    Try this:

    Code:
    If Not Me.CmbTruckTyp.SelectedItem = Nothing Then
    
     Select Case Me.CmbTruckTyp.SelectedItem.ToString
        Case "Mercedes-Benz"
             cmdMercBenzModels.Visible = True
             cmbDafModels.Visible = False
        Case "Daf"
             cmdMercBenzModels.Visible = False
             cmbDafModels.Visible = True
        Case Else
             cmdMercBenzModels.Visible = False
             cmbDafModels.Visible = False
    
      End Select
    
    End If
    Last edited by MotoX646; Sep 3rd, 2012 at 07:38 AM.

  13. #13

    Thread Starter
    Frenzied Member
    Join Date
    Feb 2009
    Posts
    1,058

    Re: Combo Box triggers another comboxbox display

    Ok Added;

    Code:
     If Not Me.CmbTruckTyp.SelectedItem = Nothing Then

    At run time I receive the error;

    InvalidCastException was unhandled
    Operator '=' is not defined for type 'DatarowView' and 'Nothing'

  14. #14
    PowerPoster dunfiddlin's Avatar
    Join Date
    Jun 2012
    Posts
    8,245

    Re: Combo Box triggers another comboxbox display

    Use this instead ..

    If CmbTruckTyp.SelectedIndex > -1 Then

  15. #15

    Thread Starter
    Frenzied Member
    Join Date
    Feb 2009
    Posts
    1,058

    Re: Combo Box triggers another comboxbox display

    Code:
     If CmbTruckTyp.SelectedIndex > -1 Then
    
                Select Case Me.CmbTruckTyp.SelectedItem.ToString
    
                    Case "MERCEDES-BENZ"
                        cmbMercBenzModels.Visible = True
                        cmbDafModels.Visible = False
                    Case "DAF"
                        cmbMercBenzModels.Visible = False
                        cmbDafModels.Visible = True
                    Case Else
                        cmbMercBenzModels.Visible = False
                        cmbDafModels.Visible = False
    
                End Select
    At runtime, no errors, however, when I select DAF, cmbDafModels.Visible is not set True , same applies when I select MERCEDES-BENZ, cmbMercBenzModels.Visible is not set to True.

    Why?


    Any help -- thanks
    Last edited by dr223; Sep 4th, 2012 at 04:26 AM.

  16. #16
    PowerPoster dunfiddlin's Avatar
    Join Date
    Jun 2012
    Posts
    8,245

    Re: Combo Box triggers another comboxbox display

    Try ..

    Select Case Me.CmbTruckTyp.SelectedText
    As the 6-dimensional mathematics professor said to the brain surgeon, "It ain't Rocket Science!"

    Reviews: "dunfiddlin likes his DataTables" - jmcilhinney

    Please be aware that whilst I will read private messages (one day!) I am unlikely to reply to anything that does not contain offers of cash, fame or marriage!

  17. #17
    Lively Member
    Join Date
    May 2010
    Posts
    103

    Re: Combo Box triggers another comboxbox display

    Quote Originally Posted by dunfiddlin View Post
    Select Case Me.CmbTruckTyp.SelectedText
    SelectedText is only for the editable portion of a combobox, not for the items in the list.


    Quote Originally Posted by dr223 View Post
    Code:
     If CmbTruckTyp.SelectedIndex > -1 Then
    
                Select Case Me.CmbTruckTyp.SelectedItem.ToString
    
                    Case "MERCEDES-BENZ"
                        cmbMercBenzModels.Visible = True
                        cmbDafModels.Visible = False
                    Case "DAF"
                        cmbMercBenzModels.Visible = False
                        cmbDafModels.Visible = True
                    Case Else
                        cmbMercBenzModels.Visible = False
                        cmbDafModels.Visible = False
    
                End Select
    At runtime, no errors, however, when I select DAF, cmbDafModels.Visible is not set True , same applies when I select MERCEDES-BENZ, cmbMercBenzModels.Visible is not set to True.

    Why?
    The text is CASE SENSITIVE. If your combobox has "Mercedes-Benz" then Case "MERCEDES-BENZ" will not work. They have to be the same...

  18. #18
    PowerPoster dunfiddlin's Avatar
    Join Date
    Jun 2012
    Posts
    8,245

    Re: Combo Box triggers another comboxbox display

    SelectedText is only for the editable portion of a combobox, not for the items in the list.
    It's been one of those days!
    As the 6-dimensional mathematics professor said to the brain surgeon, "It ain't Rocket Science!"

    Reviews: "dunfiddlin likes his DataTables" - jmcilhinney

    Please be aware that whilst I will read private messages (one day!) I am unlikely to reply to anything that does not contain offers of cash, fame or marriage!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width