問題タブ [virtualmode]

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.

0 投票する
1 に答える
14484 参照

c# - データバインドされたデータグリッドビューに仮想モードを実装する

実装に関するアドバイスの一般的な質問。

にバインドされたコレクションがありdatagridviewます。

virtual modeコレクションには何百万ものエントリ(オブジェクト)が含まれる可能性があるため、実装したいのでLine、一度に必要ないくつかのエントリのみを「キャッシュ」または表示する方が速いと考えました。仮想モードの目的は何ですか?

私が見た:http://msdn.microsoft.com/en-us/library/2b177d6d.aspx

datagridviewしかし、それを機能させることはできませんdatabound

行数を指定できません:

編集: このリンクは、バインディングを完全に削除する必要があるかもしれないことを示唆しています。これは事実ですか?http://msdn.microsoft.com/en-us/library/ms171622.aspx

「バウンド モードがパフォーマンスのニーズを満たさない場合は、仮想モード イベント ハンドラーを使用してカスタム キャッシュ内のすべてのデータを管理できます。」

0 投票する
0 に答える
178 参照

c# - C# winform、1 つ以上の DataGridView で DataGridView VirtualMode を設定する方法

私はWindowsフォームプロジェクトに取り組んでいます。私のフォームには、2 つの DataGridViews があります。

2 つの DataGridView を DataGridView.VirtualMode に設定したいと思います。

次のようなコードを2回作成する以外に、このタスクを効率的に行う方法はありますか?

アドバイスをお待ちしております。よろしくお願いします。

0 投票する
1 に答える
5446 参照

c# - C# DataGridView 仮想モード: 並べ替えを有効にする

仮想モードで DataGridView を並べ替える方法はありますか?

このマイクロソフトの例に従って、仮想モードで Gridview を実装しました: http://msdn.microsoft.com/de-de/library/ms171624.aspx。また、データベースにデータを書き込めるように例を修正しました。これは問題なく動作し、仮想モードでは速度が大幅に向上しますが、私の顧客は列を並べ替える必要があります。

しばらくウェブを検索した後、リンクhttp://social.msdn.microsoft.com/forums/en-US/winformsdatacontrols/thread/25b3f7c3-95b6-4c49-802b-b5a2a62915acを見つけましたが、取得できません仕事。

仮想モードで列をソートする方法があれば、誰でも指摘できますか?もしそうなら、どうすればいいですか?

よろしくお願いします!

0 投票する
4 に答える
2859 参照

c# - 仮想モードでの ListView のちらつき

デフォルトの ListView にあまりおかしなバグが見つかりました (所有者が描画したものではありません!)。(例を使用して) アイテムが絶えず追加され、ユーザーが選択したアイテムから少し離れたアイテムを見ようとすると(上または下にスクロール)、大きくちらつきます。Timer

ここで何か間違ったことをしていますか?

これを再現するためのコードを次に示します。

  • WindowsFormsApplication1 を作成します。
  • フォームWindowStateを最大化に設定します。
  • フォーム timer1 に置き、Enabledtrue に設定します。
  • フォーム listView1 に置く:

    /li>
  • 列を 1 つ追加します。

  • イベントを追加

    /li>
  • そして最後に

    /li>

それを実行して、リストビューのスクロールバーが表示されるまで待ちます(タイマーが十分なアイテムを追加するため)。

  • リストビューの最初のアイテムの 1 つを (マウスまたはキーで)選択し、スクロールバーまたはマウス ホイールを使用して下にスクロールし、選択したアイテムが現在のビューの外 (上) に移動するようにします。下にスクロールすればするほど、ちらつきが激しくなります!そして、スクロールバーが何をしているのか見てください?!?!?

  • 選択したアイテムを下にスクロールすると、同様の効果が現れます。


質問

どうすれば対処できますか?アイデアは、自動スクロールを停止し、上下に移動して近くのイベントを調査する可能性を備えた、一定の更新ログ ウィンドウを用意することです。しかし、そのケック効果では、それは不可能です!

0 投票する
1 に答える
2335 参照

c# - 選択したアイテムが表示されているかどうかを確認します [詳細ビューの仮想 ListView]

サブジェクトに対する良い/短い解決策はありますか?

私は考えることができます:

  • TopItemインデックスを取得します (VirtualMode項目が作成される前に null を使用できますか?)、必要な項目のインデックスが小さい場合は非listView.ClientSize.Height / GetItemRect(TopItem).Height表示になります。見えない。それ以外の場合は表示されます。

  • どういうわけかスクロールを検出し、何かをします。

それとももっと簡単な方法がありますか?

0 投票する
1 に答える
3234 参照

datagridview - 大規模なデータグリッドビューから重複をすばやく削除するにはどうすればよいですか?

datagridview 内の重複するエントリをすばやく削除できるようにする必要があります。残念ながら、私がやっている方法では、100K を超えるアイテムでは数分かかることがあります。

私が使用しているコードは次のとおりです。

datagridview は、大量のデータをサポートするために仮想モードになっています。

誰かが重複を削除するための迅速な方法を見つけ出すのを手伝ってくれたら、本当に感謝しています.

0 投票する
1 に答える
1288 参照

c# - DataGridView 仮想モードの列分割線をダブルクリックして自動サイズ変更

仮想モードで DataGridView を使用した winform アプリケーションを使用していますが、すべてうまく機能しています。唯一の問題は、列の区切りをダブルクリックすると、コントロールが表示または可視だけでなく、すべてのセルに列幅を合わせようとすることです! そして明らかに、それはアプリをハングさせます。

私はあらゆる種類の構成を試しました

すべて!、データグリッドと各列の設定! そして何も機能しません

何か案が?

最終結果は次のとおりです。ユーザーは列のサイズを変更できますが、列の境界線をダブルクリックすることはできません!.. まったく収まらないかどうかは気にしません。

0 投票する
1 に答える
193 参照

c# - VirtualモードでDataGridViewComboBoxCellのDatasourceを設定

DataGridView で仮想モードを使用する場合、CellValueNeeded イベントをサブスクライブして、その場でデータを取得します。そのハンドラーには、列を区別するロジックがあり、それが DataGridViewComboBoxColumn の場合は、データ ソースを指定します。私の問題は、セルにデータ ソースを割り当てると、DGV コードで CellValueNeeded への別の呼び出しが行われ、無限ループが発生するため、スタック オーバーフローが発生することです。これを回避するクリーンな方法はありますか?