Membuat Fungsi SelectedIndexChanged pada ComboBox di DataGridView

Posted by dragon on Monday, 21 June 2010

Pada artikel sebelumnya, telah di jelaskan bagaimana menambah control ComboBox pada DataGridView. Sekarang bagaimanakah membuat method SelectedIndexChange pada ComboBox tersebut.
Untuk control ComboBox yang diambil dari ToolBox method SelectedIndexChange sudah tersedia, Biasa nya fungsi ini di gunakan untuk menampilkan data/informasi jika nilai dari control ini dipilih.
Sedangkan untuk ComboBox pada DataGridView kita harus melakukan beberapa langkah dengan coding.
Pertama ketik Sintaks dibawah ini :

Private Sub NamaGrade_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
        Try
             Dim comboBox1 As ComboBox = CType(sender, ComboBox)
            'Ketikkan sintaks untuk menampilkan data yang di inginkan
 Catch ex As Exception
             MsgBox(ex.Message)
        End Try
End Sub

Lalu untuk mengaktifkan fungsi diatas, ikuti langkah dibawah.
Masih pada jendela Code, pilih control DataGridView pada ComboBox Class Name lalu pilih Method Name nya EditingControlShowing
Dan ketikkan sintaks dibawah ini :

Private Sub DataGridViewTTB_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridViewTTB.EditingControlShowing
        Dim cb As ComboBox = TryCast(e.Control, ComboBox)
        If cb IsNot Nothing Then
            RemoveHandler cb.SelectedIndexChanged, AddressOf NamaGrade_SelectedIndexChanged
            Select Case DataGridViewTTB.CurrentCell.ColumnIndex
                Case 1 'Posisi / nomor kolom control ComboBox pada DatagridView
                    AddHandler cb.SelectedIndexChanged, AddressOf NamaGrade_SelectedIndexChanged
            End Select
        End If
End Sub

Dengan ini kita bisa menambahkan method untuk control-control yang kita buat pada DataGridView, seperti method Leave pada TextBox. Ketikkan Sintaks dibawah ini.

Private Sub Jumlah_leave(ByVal sender As Object, ByVal e As EventArgs)
        Try
            Dim a, b, c, d, z As Integer
            Dim total As Double
            a = DataGridViewTTB.CurrentRow.Cells(4).Value
            b = DataGridViewTTB.CurrentRow.Cells(5).Value
            c = DataGridViewTTB.CurrentRow.Cells(6).Value
            d = DataGridViewTTB.CurrentRow.Cells(7).Value
            z = a * b * c * d
            total = z / 5085.31
            DataGridViewTTB.CurrentRow.Cells(8).Value = total
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

Lalu pada method EditingControlShowing seperti di atas tambahkan sintaks dibawah ini.
Dim tb As TextBox = TryCast(e.Control, TextBox)
        If tb IsNot Nothing Then
            RemoveHandler tb.Leave, AddressOf Jumlah_leave
            Select Case DataGridViewTTB.CurrentCell.ColumnIndex
                Case 7 'Posisi / nomor kolom control TextBox pada DatagridView
                    AddHandler tb.Leave, AddressOf Jumlah_leave
            End Select
        End If

Semoga bermanfaat..
Wassalam

{ 0 comments... read them below or add one }

Post a Comment