vb.net - 如果复选框 checket = true,则将“X”放入 datagridview 中的相应单元格
问题描述
我有带有多个复选框(例如 5 个复选框)、两个文本框和带有 8 列的 datagridview 的 WinForm 应用程序。我希望我的应用程序将 的值放到数据 Gridview 中Textbox1
的第二列,第三列的值,例如,当datagridview 的第四列将包含. 如果 Gridview 和当例如datagridview 的第四列将包含. 我希望这适用于所有复选框。Textbox2
Checkbox1.Checked=true
"X"
Checkbox1.Checked=true
""
这是一个例子:
我能够从文本框中添加值,但我不知道下一步该做什么。
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim name, surname As String
name = TextBox1.Text
surname = TextBox2.Text
DataGridView1.Rows.Add(New String() {CStr(DataGridView1.RowCount), name, surname})
Me.DataGridView1.FirstDisplayedScrollingRowIndex = Me.DataGridView1.RowCount - 1
End Sub
End Class
解决方案
我用以下方法解决了我的问题:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim name, surname As String
Dim index As Integer = DataGridView1.RowCount + Me.DataGridView1.FirstDisplayedScrollingRowIndex
name = TextBox1.Text
surname = TextBox2.Text
DataGridView1.Rows.Add(New String() {CStr(DataGridView1.RowCount), name, surname})
DataGridView1.Rows(index - 1).Cells(3).Value = CheckBox1.CheckState
DataGridView1.Rows(index - 1).Cells(4).Value = CheckBox2.CheckState
DataGridView1.Rows(index - 1).Cells(5).Value = CheckBox3.CheckState
DataGridView1.Rows(index - 1).Cells(6).Value = CheckBox4.CheckState
DataGridView1.Rows(index - 1).Cells(7).Value = CheckBox5.CheckState
CheckBox1.Checked = False
CheckBox2.Checked = False
CheckBox3.Checked = False
CheckBox4.Checked = False
CheckBox5.Checked = False
End Sub
但是当我尝试导出 datagritview 的内容时,我有错误。对于导出到 .txt,我使用以下代码:
Private Sub export(export As String)
Dim zlozka As String
zlozka = "C:\EX\GUARD\skuska.csv"
Dim thecsvfile As String = String.Empty
For Each column As DataGridViewColumn In DataGridView1.Columns
thecsvfile = thecsvfile & ","
Next
thecsvfile = thecsvfile.TrimEnd(CChar(","))
thecsvfile = thecsvfile & vbCr & vbLf
For Each row As DataGridViewRow In DataGridView1.Rows
For Each cell As DataGridViewCell In row.Cells
thecsvfile = thecsvfile & cell.FormattedValue.replace(",", ",") & ","
Next
thecsvfile = thecsvfile.TrimEnd(CChar(","))
thecsvfile = thecsvfile & vbCr & vbLf
Next
My.Computer.FileSystem.WriteAllText(zlozka, thecsvfile, False)
End Sub
谢谢你的帮助