これで100%改善される訳ではないけど、ケースによっては絶大な改善に繋がるので一応メモ。
該当するケース
前提条件
- DataGridViewまたはListBoxなどのコントロールのDataSourceプロパティに、sampleBindingSourceが割り当たっている
- sampleBindingSourceのDataSourceプロパティには、databaseDataSetが割り当たっている
- databaseDataSetは、SAMPLEテーブルを持っている
修正前
// グリッドへデータをバインド
this.sampleTableAdapter.Fill(this.databaseDataSet.SAMPLE);
// キーコードでフィルタリング
this.sampleBindingSource.Filter = "KEY_CODE='" + this.keyCode + "'";
修正後
// キーコードでフィルタリング
this.sampleBindingSource.Filter = "KEY_CODE='" + this.keyCode + "'";
// グリッドへデータをバインド
this.sampleTableAdapter.Fill(this.databaseDataSet.SAMPLE);
バインドしてからフィルタリングしてたのを、フィルタリングしてからバインドするように変えただけ。
これでビビるぐらい早くなったことがあったので、上記のようになってる場合は要注意。