-1

現在、SQL バックエンドを使用して VB.NET Visual Studio Professional で作業しています。DataGridViewパーツのリストに 2 つを入力する がありますCheckBox列位置 0 および 1 の列。位置 0 のチェックボックス列は「完了」とラベル付けされ、位置 1 のチェックボックス列は「欠落」とマークされます。オペレータが部品を切断すると、列のいずれかにチェックボックスを付けて、その行を完了または欠落としてマークします。パーツが欠落している場合、ユーザーが「欠落」列のチェックボックスをクリックすると、ダイアログの結果として新しいフォームが開きます。この時点で、新しいフォームが開き、欠落している列の下にあるその行のチェックボックスがチェックされます。ただし、オペレータはダイアログ結果のボタンをクリックして入力をキャンセルできます。私の問題はここで発生します。キャンセル ボタンをクリックするとフォームは閉じますが、元の DGV のチェック ボックスはオンのままで、何らかの理由でチェックを外すことができません。DGV は SQL テーブルにデータ バインドされていますが、最初の 2 つのチェックボックス列はデザイン フォームに手動で追加されています。このチェックボックスをオフにする方法についてのアドバイスはありますか? これまでの私のコードは次のとおりです。

ElseIf dr = Windows.Forms.DialogResult.Cancel Then
    MsgBox(Row_Index)
    MsgBox(DGVList.CurrentCell.ColumnIndex)
    'DGVList(Row_Index, 1).Value = True
    DGVList(DGVList.CurrentCell.ColumnIndex, DGVList.CurrentCell.RowIndex).Value = False
   'DGVList("Missing", Row_Index).Value = False
    MsgBox("Hot part has been canceled by user. This part will not be marked as missing.")
End If

Myrow_indexはサブルーチンの上部で宣言されており、両方のメッセージ ボックスが正しい位置に関連付けられているようです。この頭の体操に追加すると、行 2 と行 4 でコードが機能しますが、それ以外の場所では機能しません。

4

1 に答える 1

0

私はそれを考え出した。なぜこのようにしなければならなかったのかわかりませんが、うまくいきます。

 Dim val1 as DataGridViewCheckBoxCell = DGVList(DGVList.CurrentCell.ColumnIndex, DGVList.CurrentCell.RowIndex)
 val1.value = false
于 2016-10-15T14:29:44.067 に答える