How to pass Datagridview Combobox cell as a parameter to a function

I have a datagridview that contains many combobox that will be bound to different sources.  I want to pass the combobox object of a cell in the datagrid to a function as a parameter.  What is the syntax to do so?
KentDBerryAsked:
Who is Participating?
 
Jorge PaulinoIT Pro/DeveloperCommented:
If you have a datasource for that comboboxes you can use that.
Maybe you can use a DataView for that ...
 


Dim dgvCombo As DataGridViewComboBoxCell = DirectCast(Me.DataGridView1(<Column Name or Index>, <Row Number>), DataGridViewComboBoxCell) 
Dim dv As DataView = DirectCast(dgvCombo.DataSource, DataView) 

Open in new window

0
 
kdwoodCommented:
Kent,

Just for clarification, are you looking to pass the "Value" of the combo box to a function?

Regards,

Keith
0
 
KentDBerryAuthor Commented:
No.  I want to pass the object.   I have an existing function that I use to populate combo boxes in general and I am trying to tap into it as shown below.
            For Each row As DataGridViewRow In .Rows
                For i As Integer = 1 To 10
                    Bind_Object_To_DataSource(<reference combobox object here>, .Item("AnswerTypeID", row.Index).Value, IIf(.Item(Trim(Str(i)), row.Index).Value Is DBNull.Value, 0, .Item(Trim(Str(i)), row.Index)))
                    '                    Bind_Object_To_DataSource(.Item(i, row.Index), .Item("AnswerTypeID", row.Index).Value, .Item("A" & Trim(Str(i)) & "_AnswerID", row.Index).Value)
                Next
            Next
 
 
    Public Sub Bind_Object_To_DataSource(ByVal cb As Object, ByVal AnswerTypeID As Integer, ByVal AnswerID As Integer)
        Dim conn As New SqlConnection(My.Settings.ConnectionString)
        Dim sql As String = ""
        Try
            Dim sYear As String = ""
            If cb.Name <> "cbYear" Then
                If Me.cbYear.Text = "" Then
                    sYear = Year(Now()).ToString 'Trim(Me.cbYear.SelectedValue.ToString)
                    Me.cbYear.SelectedText = sYear
                Else
                    Try
                        sYear = Trim(Me.cbYear.SelectedValue.ToString)
                    Catch ex As Exception
                        sYear = ""
                    End Try
                End If
 
            End If
 
            Select Case cb.Name
                Case "cbYear"
                    sql = "SELECT YR as Code, rtrim(str(YR)) as Description FROM BRDWorkslates.dbo.tblEFF_NAFTA_WORKSLATE_REPORT GROUP BY YR HAVING (YR is not Null) and (YR >= 2008) and (YR < 2090) Order by YR DESC"
                Case "cbScientist"
                    sql = "SELECT Researcher as Code, Researcher as Description FROM BRDWorkslates.dbo.tblEFF_NAFTA_WORKSLATE_REPORT Where YR = '" & sYear & "' GROUP BY Researcher HAVING Researcher is not null Order by Researcher ASC"
                Case "cbTrialNumber"
                    sql = "SELECT Trial_NO as Code, Trial_NO as Description FROM BRDWorkslates.dbo.tblEFF_NAFTA_WORKSLATE_REPORT Where YR = '" & sYear & "' and Researcher = '" & Trim(Me.cbScientist.SelectedValue) & "' GROUP BY Trial_NO HAVING Trial_NO is not null Order by Trial_NO ASC"
                Case Else ' combo boxes for data entry
                    sql = "Select AnswerID as Code, Option as Description FROM tblAnswerTypesAndOptions where AnswerTypeID = " & Str(AnswerTypeID)
            End Select
 
            Dim DA As New SqlDataAdapter(sql, conn)
            Dim DS As New DataSet
            DA.Fill(DS, "Codes")
 
            Dim dt As New DataTable
            dt.Columns.Add("Description", GetType(System.String))
            dt.Columns.Add("Code", GetType(System.String))
 
            Dim drDSRow As DataRow
            Dim drNewRow As DataRow
 
            For Each drDSRow In DS.Tables("Codes").Rows
                drNewRow = dt.NewRow
                drNewRow("Description") = drDSRow("Description")
                drNewRow("Code") = drDSRow("Code")
                dt.Rows.Add(drNewRow)
            Next
 
 
            With cb
                .DataSource = dt
                .DisplayMember = "Description"
                .ValueMember = "Code"
 
                .AutoCompleteMode = AutoCompleteMode.Suggest
                .AutoCompleteSource = AutoCompleteSource.ListItems
                .DropDownStyle = ComboBoxStyle.DropDown
                '                .DataBindings.Add(New Binding("SelectedValue", dt, "Code"))
 
                Select Case cb.Name
                    Case "cbYear"
                        cb.SelectedValue = My.Settings.Year
                    Case "cbScientist"
                        cb.SelectedValue = My.Settings.Scientist
                    Case "cbTrialNumber"
                        cb.SelectedValue = My.Settings.TrialNumber
                    Case Else
                        cb.SelectedValue = AnswerID
 
                End Select
            End With
        Catch ex As Exception
 
            MsgBox(ex.Message)
        End Try
    End Sub

Open in new window

0
Cloud Class® Course: MCSA MCSE Windows Server 2012

This course teaches how to install and configure Windows Server 2012 R2.  It is the first step on your path to becoming a Microsoft Certified Solutions Expert (MCSE).

 
Jorge PaulinoIT Pro/DeveloperCommented:
Then you can use the dgvCombo from the example I have showed you above!
0
 
kdwoodCommented:
Yes, jpaulino's solution should work just fine.
0
 
KentDBerryAuthor Commented:
Thank You.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.