
DataFridViewで行を一括ですべて非表示にする方法を教えてください。
また、より良い方法がありましたら、教えてください。
<プログラムの概要>
VS2012C#のDataFridViewを使って年表を作ろうと思っています。
行数が多いため、10年ごとに区切って表示し、ボタンをクリックすると1年ごとのレ
コードが表示されるようにしようとしています。
例)
--------------
|+ |1900年|○○|
|+ |1910年|○○|
|+ |1920年|○○|
|+ |1930年|○○|
--------------
↓1910年の[+]をクリックしたら
--------------
|+ |1900年|○○|
|- |1910年|○○|
| |1911年|○○|
:
| |1919年|○○|
|+ |1920年|○○|
|+ |1930年|○○|
--------------
<困っている点>
下記に記載したようなプログラムを組んでおりますが、非表示にする処理に時間がか
かり起動が遅くなっています。
そこで、「すべての行を一括で非表示にしてから、必要な行のみを表示」に変更する
ことで処理が速くなるのではないかと考えています。
※必要な行を非表示にする場合:10行中9行を処理
必要な行を表示にする場合:10行中1行を処理 ←処理件数が減るため早くなる
のではないかと予想
すべての行を非表示にする方法として以下のよう点を調べましたが見つけられません
でした。
・行のデフォルトスタイルとして非表示にする
・表に非表示の行を追加する
・行の追加後、複数の行を一括で非表示にする
<現在作成したプログラム>
private void SET_DGV()
{
intYear = new int[intArraySize];
dgvMain.Rows.Add(intArraySize);
for (a = 0; a < intArraySize; a++)
{
intYear[a] = intYearMin+a;
if (intYear [a] % 10 == 0)
{
}
else
{
dgvMain.Rows[a].Visible = false;
}
}
}
※intYearMin ← 年表の初めの年
intArraySize ← 年表の年数・行数
No.1ベストアンサー
- 回答日時:
う~ん……
DataTableを作成してDataGridViewのDataSourceに設定、非表示の列を1つ追加しておいて
その列に対してDataTable.Select()で表示対象をSQLで取り出す。
とした方がいいんじゃないでしょうかね?
「+」のセルがクリックされたら、元のDataTableのRowにあたる位置を算出、非表示列で表示対象をSQLで取り出せるようにColumnを書き換えでRowを更新していって、
最後にDataTable.Select()で表示対象をSQLで取り出す。
取り出したDataTableを改めてDataGridViewのDataSourceに設定して、CurrentCellやら調整して……
うん、面倒ですな…。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB6で、長い時間かかる処理...
-
初回起動のみ判別したい
-
arduino の割り込み処理について
-
JSONで文字列が長い時
-
実行時エラー 3020の対策
-
Application.ScreenUpdating = ...
-
Perlで、経過をLoading画面みた...
-
ACCESS テキストボックスを隙...
-
optionのselectedは更新時は効...
-
[python] 文字列を変数名として...
-
【至急!!!】python言語で本を見...
-
<SELECT>タグの折り返し
-
html select optionが左寄せに...
-
vbaでxmlからNodeListでデータ...
-
FindFirst を複数条件で検索
-
シェルスクリプトで、空白(ス...
-
テーブル内でドロップダウンメ...
-
UWSCのSELECT文の記述方法
-
c言語 16進数の2進数への変換
-
フォームの日本語が文字化け
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB6で、長い時間かかる処理...
-
C言語のflagの使い方が分かりま...
-
SetDlgItemInt( ) c++
-
再帰的処理について
-
フォームの太字を置き換える
-
リファラのないカウントを防止
-
C言語のプログラミング
-
arduino の割り込み処理について
-
Perlの基礎中の基礎を教え...
-
問題作成のWebアプリの作り方を...
-
if (条件) { 処理 }
-
実行中の変数の中身をイミディ...
-
自動的にエスケープを付けて別...
-
ページングで「前の○件」の方法
-
数値計算の際、1000以下は端数...
-
{ ; }とは、どういう意味?
-
処理終了後、他のページへジャ...
-
アクセス制限
-
右詰表示
-
UWSC SLCTBOXもしくはSELECTに...
おすすめ情報