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

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

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

Re[2]: DataGridView新規行の追加について


(過去ログ 62 を表示中)

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

■35539 / inTopicNo.1)  DataGridView新規行の追加について
  
□投稿者/ ryouma (13回)-(2009/05/08(Fri) 15:45:55)

分類:[.NET 全般] 

たびたびの質問スミマセンm(_ _)m

また、DataGridViewについてなのですが…

新規行(AllowUserToAddRows=trueの際に最下行へ自動作成される行)にて
コンボボックス列を初期値と同様の値を選択した際の動きについての質問です。

・現状コンボボックスの表示リストはDataSouceを使用しています。
・表示リストは下記のとおり、空白行を用意し未選択状態として扱っています。
・新規行であっても、RowAddイベントでコンボボックスへ未選択("","")を設定しています。
この状態にて、新規行で@の""を選択した場合に現状の行が確定され、新たな新規行が追加されてしまいます。
___________________
| Display |Value  |
|@""      |""     |
|A"表記1" |"1"    |
|B"表記2" |"2"    |
|…        |       |

グリッド・コンボボックスの動きとして、上記の動作が正常(一般的)なのでしょうか?
私個人としては、選択値を変更していないのに新たな行が追加されてしまうのは嫌な感じがしてしまって…
どなたかご存知の方がいらっしゃいましたらご教授お願いします。
また、上記の動きを回避する方法をご存知の方いらっしゃいましたらその旨についてのご教授もお願いしますm(_ _)m
※回避として、ComboBoxCell.ValueとComboBoxEditingCtrl.SelectedValueが同じ場合に
 SelectedIndex = -1にすることで、見た目上は@の状態にできたのですが実際保持している値は異なるので…
 また、初期値が""ではない場合(例Aの場合)には当対応では回避できなかったです…

引用返信 編集キー/
■35550 / inTopicNo.2)  Re[1]: DataGridView新規行の追加について
□投稿者/ ロック (171回)-(2009/05/08(Fri) 17:58:14)
No35539 (ryouma さん) に返信
自信は無いのですが、RowsAddedでデフォルト値を設定すると
コンボボックスを選択していないのに新規行が増えてしまう
という事ですか?
手入力で、コンボボックスの""を選択した際に新規行が増えるのはokですか?
的を外しているかもしれませんが

DataGridViewにデータをバインドして使用しているなら
そのデータのDefaultValueへデフォルト値を設定しておけば
RowsAddedイベントでデフォルト値を設定しなくても良いような気がします。

DataTableをバインドしているなら
DataTable1.Columns["コンボボックスの列"].DefaultValue = "";
こうやっておけば、新規行追加時に、""が設定されるので
コンボボックスの選択も""に変わると思います。
"1"をDefaultValueに設定すれば"表記1"が選択されると思います。

引用返信 編集キー/
■35553 / inTopicNo.3)  Re[2]: DataGridView新規行の追加について
□投稿者/ ryouma (15回)-(2009/05/08(Fri) 18:31:13)
No35550 (ロック さん) に返信

説明不足でスミマセン…
DataGridView自体は非バインドで実装しています。
コンボボックスの表示リストにのみバインドしている状態です。

> 自信は無いのですが、RowsAddedでデフォルト値を設定すると
> コンボボックスを選択していないのに新規行が増えてしまう
> という事ですか?

RowsAddedでデフォルト値設定のタイミングでは新規行は増えたりはしません。
コード上で、新規行のセルに直接値を設定しても、これもまた新規行は増えたりしないことは
確認済みです。

発生現象は、新規行のコンボボックスをユーザが操作した際に
初期選択値と同じ値を選択した場合に新たに新規行が追加されてしまうということです。

コンボを初期値とはいえ選択しているんだから、ユーザにて入力されたから新規行追加してるんだ!
そういう動きが正しいと言うことなら納得できるのですが、
正常動作の仕様がいまいち把握できていないので…
ご教授お願いします。

引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -