【发布时间】:2019-03-20 17:16:43
【问题描述】:
DataGridView1 将填充 1 行或 2 行或 3 行 .. 最多 5 行 .. 我有 4 列 我希望当我单击 Button1 时,从 1 到 20 的 TextBox 将被 DataGridView1 上显示的数据填充 从 1 到 4 的 TextBox 将被第一行填充 从 5 到 8 的文本框将由第二行填充 9到12的TextBox将被第三行填充 13到16的TextBox将被第四行填充 17到20的TextBox将被第五行填充 例如..如果我在 DataGridView1 上只有 3 行,那么在这种情况下,从 13 到 20 的 TextBox 将为空。 当 DataGridView1 的 5 行被填满时,我不会有任何问题,但是当我在 DataGridView1 上只有 4 或 3 或 2 或 1 行时,我会遇到问题并且它不起作用。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If DataGridView1.Rows.Count = 0 Then
TextBox1.Text = DataGridView1.Rows.Item(0).Cells(0).Value.ToString()
TextBox2.Text = DataGridView1.Rows.Item(0).Cells(1).Value.ToString()
TextBox3.Text = DataGridView1.Rows.Item(0).Cells(2).Value.ToString()
TextBox4.Text = DataGridView1.Rows.Item(0).Cells(3).Value.ToString()
ElseIf DataGridView1.Rows.Count = 1 Then
TextBox5.Text = DataGridView1.Rows.Item(1).Cells(0).Value.ToString()
TextBox6.Text = DataGridView1.Rows.Item(1).Cells(1).Value.ToString()
TextBox7.Text = DataGridView1.Rows.Item(1).Cells(2).Value.ToString()
TextBox8.Text = DataGridView1.Rows.Item(1).Cells(3).Value.ToString()
ElseIf DataGridView1.Rows.Count = 2 Then
TextBox9.Text = DataGridView1.Rows.Item(2).Cells(0).Value.ToString()
TextBox10.Text = DataGridView1.Rows.Item(2).Cells(1).Value.ToString()
TextBox11.Text = DataGridView1.Rows.Item(2).Cells(2).Value.ToString()
TextBox12.Text = DataGridView1.Rows.Item(2).Cells(3).Value.ToString()
ElseIf DataGridView1.Rows.Count = 3 Then
TextBox13.Text = DataGridView1.Rows.Item(3).Cells(0).Value.ToString()
TextBox14.Text = DataGridView1.Rows.Item(3).Cells(1).Value.ToString()
TextBox15.Text = DataGridView1.Rows.Item(3).Cells(2).Value.ToString()
TextBox16.Text = DataGridView1.Rows.Item(3).Cells(3).Value.ToString()
ElseIf DataGridView1.Rows.Count = 4 Then
TextBox17.Text = DataGridView1.Rows.Item(4).Cells(0).Value.ToString()
TextBox18.Text = DataGridView1.Rows.Item(4).Cells(1).Value.ToString()
TextBox19.Text = DataGridView1.Rows.Item(4).Cells(2).Value.ToString()
TextBox20.Text =DataGridView1.Rows.Item(4).Cells(3).Value.ToString()
End If
End Sub
【问题讨论】:
-
如果您只有三行,那么您将需要一个 IF-Then 块来为这些额外的文本框执行其他操作。
-
有时我的 DataGridView1 中有 1 行,所以我会将 TextBox 从 1 填充到 4。有时我的 DataGridView1 中有 2 行,所以我会将 TextBox 从 1 填充到 8。有时我我的 DataGridView1 中会有 3 行,所以我将 TextBox 从 1 填充到 12。有时我的 DataGridView1 中有 4 行,所以我将 TextBox 从 1 填充到 16。有时我的 DataGridView1 中有 5 行,所以我会将 TextBox 从 1 填充到 20。当我单击 Button1
-
嗯,好的。使用 IF-Then 块查看您有多少行。很难在这里找出问题所在。
-
当我在 DataGridView1 中只有 4 或 3 或 2 或 1 行并且我单击 Button1 时,我会出现此错误(对象引用未设置为对象的实例。)
-
这就是你做一个 If 条件的原因。使用 TextBox17-20 查看您的最后一个块:将
If DataGridView1.Rows.Count > 4 Then放在它的顶部。在它后面加上一个 Else 并将四个文本框设置为一个空字符串。