問題タブ [datagridviewrow]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vb.net - DataGridView ソースを設定すると、既存のすべての DataGridViewRow オブジェクトが無効になります
フラット ファイル データベースのデータを表示する DataGridView を含むプロジェクトがあります。SQL クエリの結果を DGV にロードする 7 つのボタンと、行を選択するためのチェックボックスが追加されています。
ユーザーがチェックボックスを選択すると、その特定の DataGridViewRow (DGVR) が後で使用するために一時的な List(Of DGVR) に追加されます。
次に、2 番目のフォームを表示する最後のボタンがあり、選択した 2 つのエントリを比較して、一時リストを 2 番目のフォームに渡します。
ユーザーは、2 つの異なる選択肢から 1 つを選択できます (したがって、個別のリスト)。
問題は、ボタン 1 をクリックして行を選択し、2 番目のボタンをクリックすると、データソースを新しいクエリ結果にリセットする行によって、既存のすべての DGVR が明らかに null ポインターに変わることです。
IE: DGVR への参照が失われます。
最初のボタンから 1 つを選択し、次に 2 番目のボタンから 1 つを選択してから、選択した 2 つの項目を渡そうとすると、最初の項目は null になりますが、2 番目の項目は null になりません。
コード:
新しいボタンが押されたときにエントリを無効にする行は次の行です。
次に、チェックボックスがクリックされると、このコードが実行されます (武器の種類ごとにケースがあります)。AsList は、行を渡す前に一時的に行を保持するように設計されたリストです。
行を複製して別のコピーを作成しようとしましたが、うまくいきません。新しいデータセットをロードできるようにデータソースから分離するにはどうすればよいですか?ただし、選択した行を保存しますか?
c# - セルがチェックされているかチェックされていないかを確認しようとするとクラッシュする
システム クロックは 2014 年 9 月 16 日 (火曜日) です
しかし、コードでは、私はいつも月曜日にジャンプしています。
私はDataGridView
- 列 0 ~ 3 は
Text
- 列 4 ~ 9 は
DataGridViewCheckBoxColumn
vb.net - DataGridView 行を反復処理するときにすべての行を取得しない
VB.NET WinForms アプリケーションでは、最初の列にバインドされていない列としてチェックボックスを持つ DataGridView があります。チェックボックスがオンになっている各行を行のコレクションに追加する必要があります。
以下のコードを使用して行を反復処理し、チェックボックスがオンになっている行を見つけます。
ただし、チェックボックスがオンになっている最後の行がありません。つまり、3 つのチェックボックスをオンにすると、コンソール出力に最初の 2 つのチェックされた行の「Emp No」が表示されます。
インデックス作成がゼロの問題のように動作していると考えて、カウンターを使用した反復も試しました。
しかし、私はそのコードで同じ動作をします。Integer = 0 や Rows.Count - 1 などを変更してみましたが、どちらも役に立ちませんでした。
重要な場合は、DataGridView の SelectionMode を CellSelect に設定する必要があります。
アップデート
テーブルには、datagridview が入力されている694のレコードがあります。
コンソール出力を追加して、rows.count 値を取得しました。
データグリッドビューの最後の行が新しい行のエントリを許可するためにそこにあるため、これは理にかなっています。(しかし、2 番目の反復メソッドの Count - 1 がそれを説明すると考えていたでしょう。)
私も追加しました
チェックされたチェックボックスの If チェックの直前で、1 行目、3 行目、5 行目がチェックされている (インデックス 0、2、4) と、出力されたものは次のとおりです。
Row index: 4 行の後に「this should be...」という出力があったはずです。
c# - 最初に新しい DataGridViewRow を挿入するときに最後の DataGridViewRow を削除する方法は?
Windows フォーム アプリケーションの使用。コントロール
から派生したこのクラスがあります。DataGridView
次に、メソッド内のコンテナー クラスからAddRowAtBeginning
、新しい行が 0 インデックスに挿入され、1 つのインデックスが他のインデックスの下に移動します。イベントが発生し、実際の合計行数が前回 よりも多い場合
にのみ削除されます。RowsAdded
rowsAllowed
CurrentRow
(ヘッダーに小さな矢印が付いている) が変位により削除される まで、すべて問題ありません。
それが、逃げるときにラインに戻ろうとしてSystem.ArgumentOutOfRangeException
投げられる理由だと思います。 RowsAdded
dgv.Rows.Insert(0, newRow)
私はまだ解決策を見つけることができませんでした。
loops - VB.NET For Each ループが途中で終了する/終了する前にコードが呼び出し元に戻る
私は2つのフォームを持っています:
- 編集者
- テーブル
「エディター」フォームには、F5 キーが押されたときに「テーブル」フォームを開く「KeyDown」イベントがあります。
「テーブル」フォームには、List(Of String) を取得してループし、フォームのデータグリッドビューに行を追加するコードがあります。
問題は、ループが 2 回繰り返されると、フローがループを終了し、KeyDown イベントに戻って終了することです。
ステートメント内のコードを空にしてIf Line.Contains
MessageBox を挿入すると、すべてが正常に繰り返されます。
誰かが答えを知っていることを願っています。
よろしくお願いします!
編集:それが間違っていることがわかりますがDataGridView.Rows.Add(Row)
、理由はわかりません。
編集:「For Each」ループを「For」ループに変更し、最後に追加された行を複製することで修正しました。