首页 > 解决方案 > 如果复选框 checket = true,则将“X”放入 datagridview 中的相应单元格

问题描述

我有带有多个复选框(例如 5 个复选框)、两个文本框和带有 8 列的 datagridview 的 WinForm 应用程序。我希望我的应用程序将 的值放到数据 Gridview 中Textbox1的第二列,第三列的值,例如,当datagridview 的第四列将包含. 如果 Gridview 和当例如datagridview 的第四列将包含. 我希望这适用于所有复选框。Textbox2Checkbox1.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

标签: vb.net

解决方案


我用以下方法解决了我的问题:

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

这是错误的图片: 在此处输入图像描述

谢谢你的帮助


推荐阅读