【问题标题】:Multiple checkbox value into datagridview single column多个复选框值进入datagridview单列
【发布时间】:2017-05-15 16:42:34
【问题描述】:

如果选中要合并的数据并插入到 datagridview 单列中,我正在尝试允许特定的复选框。

表格添加列如下;

table.Columns.Add("Drinks", Type.GetType("System.Int32"))

然后

Checkbox 1 = Coke
Checkbox 2 = Pepsi
Checkbox 3 = Fanta

这是类的代码:

Dim Drinks As String

每个复选框都有以下代码及其文本;

Drinks = "Coke"

生成信息的按钮如下;

  table.Rows.Add(Drinks.ToString)
    DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
    DataGridView1.RowTemplate.Height = 100
    DataGridView1.AllowUserToAddRows = False
    DataGridView1.DataSource = table

因此,如果有人选择“复选框 1 和复选框 2”,我如何让 datagridview 列“饮料”显示可乐和百事可乐?

【问题讨论】:

    标签: vb.net checkbox


    【解决方案1】:

    创建字符串的基础是创建一个列表(Of CheckBox),用它来查询哪些 CheckBox 控件被选中,例如

    Public Class Form1
        Public checkBoxList As List(Of CheckBox)
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim values As String = "Drinks " &
                String.Join(" ", checkBoxList _
                .Where(Function(cb) cb.Checked).Select(Function(cb) cb.Text))
    
            ' use values for placing into your DataGridView
    
        End Sub
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            checkBoxList = New List(Of CheckBox) From {CheckBox1, CheckBox2, CheckBox3}
        End Sub
    End Class
    

    我做的组合框 DropDownStyle = DropDownList 并确保选择了一个项目

    Public Class Form1
        Private comboBoxList As List(Of ComboBox)
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim values As String = "Food " & String.Join(" ",
                comboBoxList.Select(Function(cb) cb.Text))
            Label1.Text = values
        End Sub
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            comboBoxList = New List(Of ComboBox) From
                {
                    ComboBox1,
                    ComboBox2,
                    ComboBox3,
                    ComboBox4
                }
            comboBoxList.ForEach(Sub(cb)
                                     cb.DropDownStyle = ComboBoxStyle.DropDownList
                                     cb.SelectedIndex = 0
                                 End Sub)
        End Sub
    End Class
    

    变化,我们不做初始选择。

    Public Class Form1
        Private comboBoxList As List(Of ComboBox)
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim values As String = "Food " & String.Join(" ",
                comboBoxList.Where(Function(cb) Not String.IsNullOrWhiteSpace(cb.Text)) _
                .Select(Function(cb) cb.Text))
    
            Label1.Text = values
        End Sub
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            comboBoxList = New List(Of ComboBox) From
                {
                    ComboBox1,
                    ComboBox2,
                    ComboBox3,
                    ComboBox4
                }
            comboBoxList.ForEach(Sub(cb)
                                     cb.DropDownStyle = ComboBoxStyle.DropDownList
                                 End Sub)
        End Sub
    End Class
    

    【讨论】:

    • 谢谢。如果我有各种类型的“饮料”列标题怎么办?示例 Combobox 4,5,6 是食物
    • 首先你应该问一个新问题,但我确实修改了我的答案,为你的新问题添加了两个变体。
    • 你太棒了!我很快就会试一试。感谢您为响应付出的时间和精力。
    • 快速提问。在公共类中使用代码 Public checkBoxList As List(Of CheckBox) 时。我将用于以下内容:table.Rows.Add(checkBoxList.) 就好像我使用 checkboxlist.tostring 它在 datagridview System.Collections.Generic.List1[System.Windows.Forms.CheckBox]`中为我提供了以下内容`
    猜你喜欢
    • 1970-01-01
    • 2014-11-18
    • 2013-01-05
    • 2010-11-17
    • 1970-01-01
    • 2012-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多