C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: DataGridView行の非表示について


(過去ログ 80 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■47307 / inTopicNo.1)  DataGridView行の非表示について
  
□投稿者/ alvin (58回)-(2010/02/25(Thu) 14:22:04)

分類:[.NET 全般] 

いつもお世話になっております。
今度も質問させていただきます〜

環境:VISTA VS2008

内容:
1.受信したデータを、DataGridviewに追加する。
2.DataGridViewに追加するときに、指定カラムの値により、表示非表示を設定する。

実装:
1.DataGridViewのDataSourceにDataTableを設定する。
2.受信した内容をDataTableに追加する。
3.DataGridViewのRowsAddedイベントで追加した行に対し、表示非表示を設定する。

問題:
「現在のカレンシー マネージャの位置に関連付けられた行を非表示にすることはできません。」
とエラーメッセージが表示されます。

これを回避するために、BindingSourceを利用し、表示非表示処理前後に、
----------------------------------
BindingSource1.SuspendBinding()
表示非表示処理
BindingSource1.ResumeBinding()
-----------------------------------
をいれました。これにより、上記のエラーは回避できました。


受信したデータはすべて非表示にしたい
---------------------------------------------------------
一行のデータを受信し、非表示設定を行いますが、
どうもDataSouceの先頭行(おそらくカレント行)は非表示にならないですが、
カレント行も非表示にするためにはどうすればいいでしょか?





















引用返信 編集キー/
■47308 / inTopicNo.2)  Re[1]: DataGridView行の非表示について
□投稿者/ 魔界の仮面弁士 (1504回)-(2010/02/25(Thu) 15:56:15)
No47307 (alvin さん) に返信
> 1.受信したデータを、DataGridviewに追加する。
> 2.DataGridViewに追加するときに、指定カラムの値により、表示非表示を設定する。

現在は、DataGridViewRow.Visible プロパティを使っているのでしょうか?

『指定カラムの値により、表示非表示を設定する』という処理を
どのイベントにて行うかにもよりますが、たとえば
DataTable ではなく DataView を表示させるようにして、
RowFilter プロパティで表示/非表示を切り替えるのはどうでしょう。

# BindingSource でも可。
引用返信 編集キー/
■47309 / inTopicNo.3)  Re[2]: DataGridView行の非表示について
□投稿者/ alvin (59回)-(2010/02/25(Thu) 16:24:59)
2010/02/25(Thu) 16:29:42 編集(投稿者)

No47308 (魔界の仮面弁士 さん) に返信
> ■No47307 (alvin さん) に返信
>>1.受信したデータを、DataGridviewに追加する。
>>2.DataGridViewに追加するときに、指定カラムの値により、表示非表示を設定する。
>
> 現在は、DataGridViewRow.Visible プロパティを使っているのでしょうか?
>
> 『指定カラムの値により、表示非表示を設定する』という処理を
> どのイベントにて行うかにもよりますが、たとえば
> DataTable ではなく DataView を表示させるようにして、
> RowFilter プロパティで表示/非表示を切り替えるのはどうでしょう。
>
> # BindingSource でも可。

RowFilterで実装するようにしました。
RowFilterで設定する文字列の中で、自作メソッドを使用することは可能でしょうか?

例:
dt.RowFilter = "カラム名 = 'a'"とかですが
dt.RowFilter = "自作関数(カラム名) = 'a'"にすることは可能でしょうか?


引用返信 編集キー/
■47310 / inTopicNo.4)  Re[3]: DataGridView行の非表示について
□投稿者/ 魔界の仮面弁士 (1505回)-(2010/02/25(Thu) 18:02:24)
No47309 (alvin さん) に返信
> RowFilterで設定する文字列の中で、自作メソッドを使用することは可能でしょうか?
使用できるのは、「IIF」「SUBSTRING」「TRIM」「CONVERT」「LEN」「ISNULL」だけですね。
これらを組み合わせて判定することはできそうですか?
http://msdn.microsoft.com/ja-jp/library/system.data.datacolumn.expression.aspx

> dt.RowFilter = "カラム名 = 'a'"とかですが
> dt.RowFilter = "自作関数(カラム名) = 'a'"にすることは可能でしょうか?
組み込み関数で対応できない場合には、DataGridView に表示させない bool 列を
追加しておき、そこに表示/非表示判定の結果を入れておく…とか。
# この場合、RowState が変わってしまうのでマズイかも。
引用返信 編集キー/
■47319 / inTopicNo.5)  Re[4]: DataGridView行の非表示について
□投稿者/ alvin (61回)-(2010/02/25(Thu) 19:36:25)
No47310 (魔界の仮面弁士 さん) に返信
> ■No47309 (alvin さん) に返信
>>RowFilterで設定する文字列の中で、自作メソッドを使用することは可能でしょうか?
> 使用できるのは、「IIF」「SUBSTRING」「TRIM」「CONVERT」「LEN」「ISNULL」だけですね。
> これらを組み合わせて判定することはできそうですか?
> http://msdn.microsoft.com/ja-jp/library/system.data.datacolumn.expression.aspx
>
>>dt.RowFilter = "カラム名 = 'a'"とかですが
>>dt.RowFilter = "自作関数(カラム名) = 'a'"にすることは可能でしょうか?
> 組み込み関数で対応できない場合には、DataGridView に表示させない bool 列を
> 追加しておき、そこに表示/非表示判定の結果を入れておく…とか。
> # この場合、RowState が変わってしまうのでマズイかも。

表示非表示のための列を追加することにしました。
回答ありがとうございました。


解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -