DataGridView値のCheckBox列をtrueに設定する方法

mtholen

GD All、

私は以下の課題の解決策を探しています。

データグリッドビューがバインドされていないフォームがあります。dgには、使用するメソッドをユーザーが選択できる列が1つ追加されています。イベントの状態はデータベースに保存され、フォームを再度開いた後、コードはイベントが「開いている」状態にあるかどうかを確認します。開いている場合は、以前に選択したメソッドをデータグリッド内のメソッドと比較し、以前に設定する必要があります。 「選択された」メソッドになるようにアクティブ化されたメソッド。

それでも、残念ながらこれを機能させることができないようです...

以下のコードは、dg内のメソッドをループして値を比較します。これが、methodIDに一致する場合は、値を「True」またはTrueValueに設定する必要があります。

これは、データベースチェックがtrueを返し、フォームが完全に初期化された後に初期化さsession.methodIDれます。ここで、は返されたLINQクエリのフィールドです。

For Each r As DataGridViewRow In dgMethods.Rows

   If r.Cells(1).Value = session.methodID Then
      Dim c As DataGridViewCheckBoxCell = r.Cells(0)
      c.Value = c.TrueValue
   End If

Next

残念ながら、これではチェックボックスが「チェック済み」に設定されません。ループの実行との間の比較評価r.Cells(1).Valueし、session.methodID正確に正しいとトリガを。

興味深いのは、「CellContentClick」イベントの後に同様のループを実行すると、期待どおりに実行されることです。(以下の例では、すべてのチェックボックス値をチェック済みに設定しています)

Private Sub dgMethods_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgMethods.CellContentClick

    'Only single selection allowed, so clear table before submitting new selection
    For Each r As DataGridViewRow In dgMethods.Rows
        Dim c As DataGridViewCheckBoxCell = r.Cells(0)
        c.Value = c.TrueValue

    Next

    dgMethods.CommitEdit(DataGridViewDataErrorContexts.Commit)

End Sub

だから、どうやらでループを呼び出すだけとイベントがトリガーされたdgMethodsときの状態に違いがあるようですが、dgMethods.CellContentClickどちらかわかりませんか?CheckBox列を設定しようとする投稿はたくさんありますが、どれも機能させることができませんでした。

誰かが何か考えを持っていますか?

私はあなたの提案をいただければ幸いですか?

mtholen

GD All、

さらに検索した後、私は次の興味深い行動に出くわしました。

メソッド選択プロセスは「frmAddEvent」と呼ばれるフォームの一部であり、frmAddEventフォームは以下のルーチンを使用してメインフォームから呼び出されます。

新しいフォームインスタンスが作成され、その後InitializeForm()、GUIDパラメータを使用して対応するデータを取得してフォームフィールドを設定する、呼び出されたフォームクラスのパブリックサブを使用して入力されます。

If Not (isOpened(rsTankName.unqID)) Then
   Dim newForm As New frmAddEvent() '(rsTankName)
   newForm.InitializeForm(rsTankName)
   newForm.Show()

Else

End If

初期化サブは、いくつかのデータテーブルをクエリし、該当する場合は、新しいフォームインスタンスの対応するフィールドを正しく設定します。その設定の一部はmethoddgMethodsdatagridviewで選択です。

以下のコードは完全に機能するため、フォームを呼び出す順序によってすべての違いが生じるように見えます。

If Not (isOpened(rsTankName.unqID)) Then
   Dim newForm As New frmAddEvent() '(rsTankName)

   newForm.Show()
   newForm.InitializeForm(rsTankName)
Else

End If

したがってイベントnewForm.InitializeForm(rsTankName)後にafterを呼び出すと、newForm.ShowdatagridviewがCheckBoxColumnを正しく設定できるようになります。

実際のチェックボックス自体は、新しいフォームインスタンスを作成したShow直後に、データグリッドのDataGridViewCheckBoxColumnプロパティを持つセルとして「使用可能」であるにもかかわらず、実際にはコマンドでのみ生成されるためと考えられNew frmAddEventます。実際のCheckBoxとそれに対応するCheckedStateは、newForm.Showイベントが呼び出される前には作成されませんチェックボックスが表示用に作成されたとき(newForm.Showイベント)、実際の値との比較は行われていないように見えます。

したがって、新しいフォームの開始時にチェックボックス列Showを設定するには、DataGridViewCheckBoxColumn値を設定する前にイベントを呼び出す必要があります。そうしないと、チェックボックスに「チェック済み」と表示されません。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

datagridview の行/列の幅を datagridview の幅に設定する方法は?

分類Dev

dataGridViewreadOnlyの最初の3列をtrueに設定する方法

分類Dev

値の列を値の行に設定する方法は?

分類Dev

if条件に基づいてdatagridviewセル値の色を設定する方法

分類Dev

ブール配列のすべての値をtrueに設定する

分類Dev

列の値を最後の正の整数に設定する方法

分類Dev

各列に値の中心を設定する方法exportdatatable pdfhtml

分類Dev

smaliでブール値をtrueに設定する方法

分類Dev

最初の列A、B、C値に基づいて列C値を設定する方法

分類Dev

配列の値を「;」に設定する方法 分離された値

分類Dev

配列インデックスの配列に値を設定する方法

分類Dev

VBA列の値を範囲で終了するように設定する方法

分類Dev

Trueの場合はブール値をFalseに設定し、Falseの場合はTrueに設定するPythonの最も短い方法

分類Dev

文字列値を列挙子に設定する方法

分類Dev

連想配列のキーの範囲を値に設定する方法

分類Dev

配列のキー値の間にコロンを設定する方法

分類Dev

既存のBlob列のDEFAULT値をEMPTY_BLOB()に設定する方法

分類Dev

jqueryを使用して配列に一意の値を設定する方法

分類Dev

ブール値のリスト内のすべての値がtrueの場合に変数をtrueに設定するための最良の方法

分類Dev

DatagridView 列ごとに異なる行数を設定するには?

分類Dev

n行ごとに列の値を選択および設定する方法は?

分類Dev

@RequestParamで配列のデフォルト値を空に設定する方法

分類Dev

NULL値にJSONObjectのデフォルト文字列を設定する方法

分類Dev

既存のクエリ文字列Blazorに新しい値を設定する方法

分類Dev

GridViewの列をデフォルト値に設定する方法は?

分類Dev

null値が渡されたときに空の文字列を設定する方法

分類Dev

他の列に基づいて列の値を設定する

分類Dev

ボタンクリック時にBOOL値をTRUEに設定する方法

分類Dev

既存の列のデフォルト値を設定する方法

Related 関連記事

  1. 1

    datagridview の行/列の幅を datagridview の幅に設定する方法は?

  2. 2

    dataGridViewreadOnlyの最初の3列をtrueに設定する方法

  3. 3

    値の列を値の行に設定する方法は?

  4. 4

    if条件に基づいてdatagridviewセル値の色を設定する方法

  5. 5

    ブール配列のすべての値をtrueに設定する

  6. 6

    列の値を最後の正の整数に設定する方法

  7. 7

    各列に値の中心を設定する方法exportdatatable pdfhtml

  8. 8

    smaliでブール値をtrueに設定する方法

  9. 9

    最初の列A、B、C値に基づいて列C値を設定する方法

  10. 10

    配列の値を「;」に設定する方法 分離された値

  11. 11

    配列インデックスの配列に値を設定する方法

  12. 12

    VBA列の値を範囲で終了するように設定する方法

  13. 13

    Trueの場合はブール値をFalseに設定し、Falseの場合はTrueに設定するPythonの最も短い方法

  14. 14

    文字列値を列挙子に設定する方法

  15. 15

    連想配列のキーの範囲を値に設定する方法

  16. 16

    配列のキー値の間にコロンを設定する方法

  17. 17

    既存のBlob列のDEFAULT値をEMPTY_BLOB()に設定する方法

  18. 18

    jqueryを使用して配列に一意の値を設定する方法

  19. 19

    ブール値のリスト内のすべての値がtrueの場合に変数をtrueに設定するための最良の方法

  20. 20

    DatagridView 列ごとに異なる行数を設定するには?

  21. 21

    n行ごとに列の値を選択および設定する方法は?

  22. 22

    @RequestParamで配列のデフォルト値を空に設定する方法

  23. 23

    NULL値にJSONObjectのデフォルト文字列を設定する方法

  24. 24

    既存のクエリ文字列Blazorに新しい値を設定する方法

  25. 25

    GridViewの列をデフォルト値に設定する方法は?

  26. 26

    null値が渡されたときに空の文字列を設定する方法

  27. 27

    他の列に基づいて列の値を設定する

  28. 28

    ボタンクリック時にBOOL値をTRUEに設定する方法

  29. 29

    既存の列のデフォルト値を設定する方法

ホットタグ

アーカイブ