VB.Net限制检查datagridview并从中获取数据到标签

时间:2016-12-29 05:58:19

标签: vb.net checkbox datagridview

请帮帮我。 我的vb代码有问题。我有一个带有Checkbox列的Datagridview。我的系统是一个图书馆系统。我希望用户只借两本书。我的问题是。 我想限制用户只检查2。 2.当检查行时,我想获得一些数据,例如书名和作者,并将其放到标签上。

请帮帮我。

 Public Sub BorrowBook()

    Dim Message As String = String.Empty
    Dim Message1 As String = String.Empty
    Dim Message2 As String = String.Empty
    Dim Message3 As String = String.Empty
    Dim Message4 As String = String.Empty
        Dim Message5 As String = String.Empty

        For Each row As DataGridViewRow In Form5.DataGridView1.Rows
            Dim isSelected As Boolean = Convert.ToBoolean(row.Cells("checkBoxColumn").Value)
            isSelected += 1
            If isSelected = 1 Then
                Message = row.Cells("BookID").Value.ToString()
                Message1 = row.Cells("CallNumber").Value.ToString()
                Message2 = row.Cells("Title").Value.ToString()

            ElseIf isSelected = 2 Then
                Message3 = row.Cells("BookID").Value.ToString()
                Message4 = row.Cells("CallNumber").Value.ToString()
                Message5 = row.Cells("Title").Value.ToString()

            End If
        Next
        Form5.Label17.Text = Message
        Form5.Label25.Text = Message1
        Form5.Label21.Text = Message2
        Form5.Label20.Text = Message3
        Form5.Label26.Text = Message4
        Form5.Label19.Text = Message5
 End Sub

2 个答案:

答案 0 :(得分:0)

基于你的问题让我回答第二个,因为我需要知道第一个,就在这里。

Private Sub DataGridView_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
        Dim i As Integer
        i = DataGridView.CurrentRow.Index
         Form5.Label17.Text = DataGridView.Item(0, i).Value
         Form5.Label25.Text= DataGridView.Item(1, i).Value
         Form5.Label21.Text = DataGridView.Item(2, i).Value
         Form5.Label19.Text = DataGridView.Item(3, i).Value
    End Sub

这只是一个示例,您可以将此代码放在Button ClickDataGridview Click中,然后从0开始计算列,并将上面的代码替换为所需列示例的编号。

DataGridView.Item(0, i).Value \\If 0 = BookID

答案 1 :(得分:0)

您可以尝试使用List(作为表单级变量),并在检查If List.Contains(RowId)(其中RowId是行的唯一索引)Then Remove之后从列表{{ 1}}检查OrElseIf List.Count < 2 RowId到列表。

之后,您可以将具有Id的行检入Add,并取消选中从列表中删除的行。