-1

VS 2008 と VB.NET を言語として使用しています。私は2つのグリッドを持っています。1 つのグリッドには、ユーザーのデータがあります。例: 携帯電話番号、電子メール、その他の情報。2 番目のグリッドには、すでにいくつかのアラームが追加されています。

アラーム グリッドビューの各行に 2 つのチェックボックス列をアタッチする必要があります。そのチェックボックスをクリックすると、特定のデータベース操作が実行されます。

現在、チェックボックスを datagridview に追加しましたが、チェック/チェックを外すことができません。

チェック/チェック解除の問題を解決し、チェックボックスのクリックのデータベース操作を実行するためのヒントを教えてください。

これは、データグリッドビューにチェックボックスを追加した方法です

Dim email As DataGridViewCheckBoxColumn = New DataGridViewCheckBoxColumn(True)
Dim sms As DataGridViewCheckBoxColumn = New DataGridViewCheckBoxColumn(True)

email.HeaderText = "Email"
email.ReadOnly = False
sms.HeaderText = "SMS"
sms.ReadOnly = False

UserAlarmDataGridView.Columns.Add(email)

UserAlarmDataGridView.Columns.Add(sms)

列の readonly プロパティを false にしようとしましたが、うまくいきません。

4

2 に答える 2

0

次のコードを確認してください

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    Dim AlarmColumn1 As New DataGridViewCheckBoxColumn(True)
    Dim AlarmColumn2 As New DataGridViewCheckBoxColumn(True)

    AlarmColumn1.Name = "Alarm1"
    AlarmColumn1.HeaderText = "Email"
    AlarmColumn1.ReadOnly = False

    AlarmColumn2.Name = "Alarm2"
    AlarmColumn2.HeaderText = "SMS"
    AlarmColumn2.ReadOnly = False

    UserAlarmDataGridView.Columns.Add(AlarmColumn1)
    UserAlarmDataGridView.Columns.Add(AlarmColumn2)
    UserAlarmDataGridView.ReadOnly = False
End Sub

チェックボックスのクリックに基づいてデータベース操作を行うには、次を使用します

Private Sub UserAlarmDataGridView_CellContentClick(sender As Object, _
    e As System.Windows.Forms.DataGridViewCellEventArgs) Handles UserAlarmDataGridView.CellContentClick

    Dim ColumnName1 As String = UserAlarmDataGridView.Columns(e.ColumnIndex).Name

    If ColumnName1 = "Alarm1" Or ColumnName1 = "Alarm2" Then
        Dim CellCheckBox1 As DataGridViewCheckBoxCell = _
            CType(UserAlarmDataGridView.Rows(e.RowIndex).Cells(ColumnName1), DataGridViewCheckBoxCell)

        Dim CellCheckBoxState1 As String = CellCheckBox1.EditingCellFormattedValue.ToString

        MsgBox("Row = " & CellCheckBox1.RowIndex & vbCrLf & _
               "Column = " & CellCheckBox1.ColumnIndex & vbCrLf & _
               "State = " & CellCheckBoxState1)
    End If
End Sub
于 2013-07-13T10:38:58.900 に答える