Reputation: 45
i want to display my datagridview1 data in relevant textboxes. when i select any cell in the datagridview1 relevant data should be displayed in textboxes. here is the code i did
Private Sub DataGridView1_CellClick(ByVal sender As Object, _
ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) _
Handles DataGridView1.CellClick
Dim i As Integer
i = DataGridView1.CurrentRow.Index
Me.Label8.Text = DataGridView1.Item(0, i).Value
Me.TextBox1.Text = DataGridView1.Item(1, i).Value
Me.TextBox2.Text = DataGridView1.Item(2, i).Value
Me.ComboBox1.Text = DataGridView1.Item(3, i).Value
Me.ComboBox2.Text = DataGridView1.Item(4, i).Value
Me.TextBox5.Text = DataGridView1.Item(5, i).Value
Me.TextBox3.Text = DataGridView1.Item(6, i).Value
Me.TextBox4.Text = DataGridView1.Item(7, i).Value
Me.RichTextBox1.Text = DataGridView1.Item(8, i).Value
Me.RichTextBox2.Text = DataGridView1.Item(9, i).Value
Me.Label14.Text = DataGridView1.Item(10, i).Value
End Sub
i did another code here it is
Private Sub DataGridView1_CellContentClick(ByVal sender _
As System.Object, ByVal e As _
System.Windows.Forms.DataGridViewCellEventArgs) _
Handles DataGridView1.CellContentClick
Try
If e.RowIndex >= 0 Then
Dim row As DataGridViewRow
row = Me.DataGridView1.Rows(e.RowIndex)
Label8.Text = row.Cells("id").Value.ToString
TextBox1.Text = row.Cells("firstname").Value.ToString
TextBox2.Text = row.Cells("lastname").Value.ToString
ComboBox1.Text = row.Cells("year").Value.ToString
ComboBox2.Text = row.Cells("month").Value.ToString
TextBox5.Text = row.Cells("gender").Value.ToString
TextBox3.Text = row.Cells("address").Value.ToString
TextBox4.Text = row.Cells("telephone").Value.ToString
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
however both codes are not working they give errors. inside the "" marks represent the column name
can anyone give me the solution in vb.net
Upvotes: 3
Views: 56181
Reputation: 1
Private Sub DataGridView1_CellEnter(sender As Object, e As EventArgs)
Handles DataGridView1.CellEnter
Dim row As DataGridViewRow = DataGridView1.CurrentRow
txtBox1.Text = row.Cells(0).Value.ToString()
txtBox2.Text = row.Cells(1).Value.ToString(),
End Sub
Upvotes: 0
Reputation: 39
To navigate through DataGridView rows with up and down keys and show the selected record in textboxes you can use this:
'declare variable
Private DB As New databasenameDataSetTableAdapters.tablenameTableAdapter
'add constructor to your form
Public Sub New()
' This call is required by the designer.
InitializeComponent()
'Setting KeyPreview To True makes sure that the Form1_KeyDown will always
'be called If a key Is pressed,
Me.KeyPreview = True
End Sub
Private Sub form1_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
Select Case e.KeyCode
'if else statement is there otherwise when going through the rows in grid
'it would show the previous row in textboxes instead of current one
'GetData is a select query you can generate by double clicking the dataset.xsd file in solution explorer
Case Keys.Up
Dim rowUp As Integer = dataGridView.CurrentRow.Index
If (rowUp <= 0) Then
rowUp = 0
Else
rowUp = rowUp - 1
End If
Try
txtBox1.Text = DB.GetData.Rows(rowUp).Item(0).ToString
txtBox2.Text = DB.GetData.Rows(rowUp).Item(1).ToString
txtBox3.Text = DB.GetData.Rows(rowUp).Item(2).ToString
Catch ex As Exception
MsgBox(ex.Message)
End Try
Exit Select
Case Keys.Down
Dim rowDown As Integer = dataGridView.CurrentRow.Index
If (rowDown >= DB.GetData.Rows.Count - 1) Then
rowDown = DB.GetData.Rows.Count - 1
Else
rowDown = rowDown + 1
End If
Try
txtBox1.Text = DB.GetData.Rows(rowDown).Item(0).ToString
txtBox2.Text = DB.GetData.Rows(rowDown).Item(1).ToString
txtBox3.Text = DB.GetData.Rows(rowDown).Item(2).ToString
Catch ex As Exception
MsgBox(ex.Message)
End Try
Exit Select
Another way of doing it use the datagridview CellEnter event
Private Sub DataGridView1_CellEnter(sender As Object, e As EventArgs)
Handles DataGridView1.CellEnter
Dim row As DataGridViewRow = DataGridView1.CurrentRow
txtBox1.Text = row.Cells(0).Value.ToString()
txtBox2.Text = row.Cells(1).Value.ToString(),
End Sub
Upvotes: 0
Reputation: 11
Please use this,
Private Sub DataGridView1_CellContentClick_1(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick
namatxt.Text = Me.DataGridView1.SelectedCells(1).Value.ToString
End Sub
Upvotes: 1
Reputation: 21
Private Sub DataGridView1_CellClick (ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
Dim i As Integer
With DataGridView1
if e.RowIndex >= 0 Then
i = .CurrentRow.Index
tbID.text = .Rows(i).Cells("id").Value.ToString
tbFirstNametext = .Rows(i).Cells("firstname").Value.ToString
tbLastNametext = .Rows(i).Cells("lastname").Value.ToString
tbAddresstext = .Rows(i).Cells("address").Value.ToString
End If
End With
End Sub
Upvotes: 2
Reputation: 1155
Use this code, it works fine for me:
Private Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick
If e.RowIndex >= 0 Then
Dim row As DataGridViewRow
row = Me.DataGridView1.Rows(e.RowIndex)
tbID.Text = row.Cells("id").Value.ToString
tbFirstName.Text = row.Cells("firstname").Value.ToString
tbLastName.Text = row.Cells("lastname").Value.ToString
tbAddress.Text = row.Cells("address").Value.ToString
End If
End Sub
replace the names of the columns i have (i.e "id" "firstname" "lastname") etc with the name of your columns.
Upvotes: 0
Reputation: 18310
How about this?
Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
Dim row As DataGridViewRow = DataGridView1.CurrentRow
Me.Label8.Text = row.Cells(0).Value.ToString()
Me.TextBox1.Text = row.Cells(1).Value.ToString()
Me.TextBox2.Text = row.Cells(2).Value.ToString()
Me.ComboBox1.Text = row.Cells(3).Value.ToString()
Me.ComboBox2.Text = row.Cells(4).Value.ToString()
Me.TextBox5.Text = row.Cells(5).Value.ToString()
Me.TextBox3.Text = row.Cells(6).Value.ToString()
Me.TextBox4.Text = row.Cells(7).Value.ToString()
Me.RichTextBox1.Text = row.Cells(8).Value.ToString()
Me.RichTextBox2.Text = row.Cells(9).Value.ToString()
Me.Label14.Text = row.Cells(10).Value.ToString()
End Sub
Upvotes: 0