私はデータを入力するときに最初の項目がデフォルトで選択されるWinForm DataGridViewを持っています。アイテムが選択されたときにイベントが発生し、いくつかのコードが実行されたときにこれを発生させたくありません。私がこれを持っている解決策は、新しいデータバインド後にイベントが最初に発生したときに、イベントをアンフックバインドして再読み込みするか、またはフラグを変更することです。しかし、もう少しエレガントなものがあるのだろうかと思っていました。DataGridViewが最初の項目を選択しないようにする
答えて
私はwinformsアプリをテスト用に開いていませんが、あなたのデータとDataGridviewの間にBindingSourceが介在しているのが不思議です。その場合、何を設定すればいいですか
List<Data> data = GetMyData();
BindingSource myBindingSource = new BindingSource();
myBindingSource.DataSource = data;
myBindingSource.position = -1;
myGrid.DataSource = myBindingSource;
データとUIの間にBindingSourceオブジェクトを介入すると便利なことがよくあります。これは、List <>オブジェクトではなくDataTableオブジェクトをデータとして使用することに慣れていますが、多くのランダムな問題を修正するのに役立ちそうです。
使用次の例のようなもの:もちろん
dataGridView.Columns[0].Selected = false;
dataGridView.Rows[0].Selected = false;
dataGridView.Rows[0].Cells[0].Selected = false;
ように行、列、およびがある場合は、確認してください。それは単なる例です。
何(申し訳ありませんが、VB.NETが、私はあなたが変換できると確信している)について:
myGrid.ClearSelection()
私は(私はSelectionChangedイベントを使用していない)と同様の問題を抱えていたし、これがために働きます私:バインディングが設定された後に、コンストラクタで
、DataBindingCompleteイベントにハンドラを追加します。
dgvCommandos.DataSource = systeemCommandos; // = my List<> of objects
dgvCommandos.DataBindingComplete += new DataGridViewBindingCompleteEventHandler(dgvCommandos_DataBindingComplete);
ハンドラ:
void dgvCommandos_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
dgvCommandos.ClearSelection();
}
行を選択する場合は、
これを基に、私はユーザーの選択に応じて他のイベントを処理することが可能だと思います。お役に立てれば。
が、私はそれは私のために働いてしまっただけで、私の方法(などのTextBox、コンボボックス、多くののBindingSource経由で私のDataGridViewにバインド):私のコントロールにデータ連結を初期化し、データをロードした後
DataGridViewのに私はバインディングが中断された場合、私がチェック私のRowHeaderMouseClickイベントで結合
bindingSource.SuspendBinding();
を中断しなければなりませんでした。もしそうなら、それを再開する:
if(bindingSource.IsBindingSuspended)
bindingSource.ResumeBinding();
この方法で私はロードを完了し、(私の場合ソート可能するBindingListに)データの結合、ユーザーになく、選択されていないレコードにデータを表示することができます。
これは少なくとも誰にでも役立ちます。
- 1. ドロップダウンリストの最初の項目を選択
- 2. デフォルトリストビューの最初の項目の選択
- 3. kendoComboBoxの最初の項目を選択してください
- 4. jComboBoxは、選択したアイテムを選択したときに選択項目を最初に選択します
- 5. .first( 'li)リストの最初の項目を選択していないと
- 6. 常に最初の項目を選択リストボックスvb.net
- 7. xaml UWPが最初のリストビュー項目にフォーカス/選択を設定しました
- 8. forループ内の最初のn番目のリスト項目を選択します
- 9. アンドロイドのラジオボタンでlistviewで最初に選択されている項目をどのようにするか?
- 10. ドロップダウンリストは、項目を選択/特定のアイテムの最初の
- 11. MongoDBの一致条件の最初の項目を選択
- 12. 2行のペーパードロップダウンメニューから最初の項目のみを選択
- 13. 項目を選択した文字が最初に出現した後
- 14. デフォルト値を選択しているスピナーの最初の項目を選択する
- 15. Posgresql/SqlAlchemyでARRAYの最初の項目を選択
- 16. VIM:omnicomplete、ドロップダウンボックスの最初の項目を自動選択
- 17. jQuery-uiオートコンプリート、最初の項目を選択
- 18. JQueryオートコンプリート、最初の項目を手動で選択
- 19. AspxListBoxの選択項目はnullですが、項目を選択します
- 20. 選択項目が
- 21. JQMカスタム選択動的に項目を選択しない
- 22. コンボボックスで項目を選択しない
- 23. 選択した項目が
- 24. Silverlight Comboboxデータグリッドの選択項目に選択項目を設定
- 25. AngularJS選択項目が最初/デフォルト値にリセットされていません
- 26. リスト項目の最初の文字を選択してください。
- 27. 選択項目の最後の項目を取得
- 28. C#のどのように私はDataGridViewの中で選択した項目を集中するにはどうすればよいのDataGridView
- 29. リスト項目からx(f.e.最初の文字)を選び、新しいリストからランダムな項目を選ぶ
- 30. 配列から最初に2項目を選択するには?
私のバインディングソースは総称リストです。 – jwarzech
しかし、いつでもBindingSourceオブジェクトに介入することができます。私は秒を与え、私が意味するもので答えを更新します。 – Clyde
これは動作しません。 'myBindingSourceの設定。Position = -1; '直ちにそれを読み取ると、-1ではなく0が表示されます。 – styfle