DOBON.NET DOBON.NETプログラミング掲示板過去ログ

DataGridViewのコンボボックスにユーザーが文字列を入力した値がセルの値をセルの値として表示するには

環境/言語:[開発環境:Windows XP Professional SP2 使用言語:C# NET Framework 2.0]
分類:[.NET]

初めて投稿させていただきます。

.NET Tips の下記の記事により、

  DataGridViewのコンボボックスにユーザーが文字列を入力できるようにする
  http://dobon.net/vb/dotnet/datagridview/comboboxdropdownstyle.html

コンボボックスにユーザが文字列を入力できるようになりました。
ただ、編集中のセルのコンボボックスに文字列を入力し、別のセルにフォーカスを動かしたとき、編集が完了したセルの表示値が入力値に更新されません(値は編集前の値に戻る)。

入力した値はコンボボックスのリストに追加されていますので、もう一度そのセルに戻りコンボボックスのリストからその値を選択することは可能です。

文字列入力後に自動でそのセルの値が入力した文字列になるようにする方法がありますでしょうか?
■No20576に返信(つれづれ人さんの記事)
> 入力した値はコンボボックスのリストに追加されていますので、もう一度そのセルに戻りコンボボックスのリストからその値を選択することは可能です。
>
ここまで出来たなら、じゃぁ〜あとであるボタンを押した時に
そのセル(またはそれを含む列1列でもいい)に入力した値を取り出す方法は、わかりますか?SelectedIndexとかは、ないんですねぇ(先ほど知りました)
そのプロパティは、取得または「設定」ができましたよ

> 文字列入力後に自動でそのセルの値が入力した文字列になるようにする方法がありますでしょうか?
DataGridView1_CellValidating()のところへちょこっと追加したらOKでした。
以上のヒントで考えてみてくださいネ!
> DataGridView1_CellValidating()のところへちょこっと追加したらOKでした。
> 以上のヒントで考えてみてくださいネ!

リストに文字列を追加した行のあとにセルのValueに文字列を設定する以下の行、

  dgv.Rows[e.RowIndex].Cells[e.ColIndex].Value = e.FormattedValue;

を追加したらあっさり表示できました。
ありがとうございました。

DOBON.NET | プログラミング道 | プログラミング掲示板