問題タブ [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.
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
「バウンド モードがパフォーマンスのニーズを満たさない場合は、仮想モード イベント ハンドラーを使用してカスタム キャッシュ内のすべてのデータを管理できます。」
c# - C# winform、1 つ以上の DataGridView で DataGridView VirtualMode を設定する方法
私はWindowsフォームプロジェクトに取り組んでいます。私のフォームには、2 つの DataGridViews があります。
2 つの DataGridView を DataGridView.VirtualMode に設定したいと思います。
次のようなコードを2回作成する以外に、このタスクを効率的に行う方法はありますか?
アドバイスをお待ちしております。よろしくお願いします。
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を見つけましたが、取得できません仕事。
仮想モードで列をソートする方法があれば、誰でも指摘できますか?もしそうなら、どうすればいいですか?
よろしくお願いします!
c# - 仮想モードでの ListView のちらつき
デフォルトの ListView にあまりおかしなバグが見つかりました (所有者が描画したものではありません!)。(例を使用して) アイテムが絶えず追加され、ユーザーが選択したアイテムから少し離れたアイテムを見ようとすると(上または下にスクロール)、大きくちらつきます。Timer
ここで何か間違ったことをしていますか?
これを再現するためのコードを次に示します。
- WindowsFormsApplication1 を作成します。
- フォーム
WindowState
を最大化に設定します。 - フォーム timer1 に置き、
Enabled
true に設定します。 フォーム listView1 に置く:
/li>列を 1 つ追加します。
イベントを追加
/li>そして最後に
/li>
それを実行して、リストビューのスクロールバーが表示されるまで待ちます(タイマーが十分なアイテムを追加するため)。
リストビューの最初のアイテムの 1 つを (マウスまたはキーで)選択し、スクロールバーまたはマウス ホイールを使用して下にスクロールし、選択したアイテムが現在のビューの外 (上) に移動するようにします。下にスクロールすればするほど、ちらつきが激しくなります!そして、スクロールバーが何をしているのか見てください?!?!?
選択したアイテムを下にスクロールすると、同様の効果が現れます。
質問
どうすれば対処できますか?アイデアは、自動スクロールを停止し、上下に移動して近くのイベントを調査する可能性を備えた、一定の更新ログ ウィンドウを用意することです。しかし、そのケック効果では、それは不可能です!
c# - 選択したアイテムが表示されているかどうかを確認します [詳細ビューの仮想 ListView]
サブジェクトに対する良い/短い解決策はありますか?
私は考えることができます:
TopItem
インデックスを取得します (VirtualMode
項目が作成される前に null を使用できますか?)、必要な項目のインデックスが小さい場合は非listView.ClientSize.Height / GetItemRect(TopItem).Height
表示になります。見えない。それ以外の場合は表示されます。どういうわけかスクロールを検出し、何かをします。
それとももっと簡単な方法がありますか?
datagridview - 大規模なデータグリッドビューから重複をすばやく削除するにはどうすればよいですか?
datagridview 内の重複するエントリをすばやく削除できるようにする必要があります。残念ながら、私がやっている方法では、100K を超えるアイテムでは数分かかることがあります。
私が使用しているコードは次のとおりです。
datagridview は、大量のデータをサポートするために仮想モードになっています。
誰かが重複を削除するための迅速な方法を見つけ出すのを手伝ってくれたら、本当に感謝しています.
c# - DataGridView 仮想モードの列分割線をダブルクリックして自動サイズ変更
仮想モードで DataGridView を使用した winform アプリケーションを使用していますが、すべてうまく機能しています。唯一の問題は、列の区切りをダブルクリックすると、コントロールが表示または可視だけでなく、すべてのセルに列幅を合わせようとすることです! そして明らかに、それはアプリをハングさせます。
私はあらゆる種類の構成を試しました
すべて!、データグリッドと各列の設定! そして何も機能しません
何か案が?
最終結果は次のとおりです。ユーザーは列のサイズを変更できますが、列の境界線をダブルクリックすることはできません!.. まったく収まらないかどうかは気にしません。
c# - VirtualモードでDataGridViewComboBoxCellのDatasourceを設定
DataGridView で仮想モードを使用する場合、CellValueNeeded イベントをサブスクライブして、その場でデータを取得します。そのハンドラーには、列を区別するロジックがあり、それが DataGridViewComboBoxColumn の場合は、データ ソースを指定します。私の問題は、セルにデータ ソースを割り当てると、DGV コードで CellValueNeeded への別の呼び出しが行われ、無限ループが発生するため、スタック オーバーフローが発生することです。これを回避するクリーンな方法はありますか?