「DataGridViewのコンボボックスにユーザーが文字列を入力できるようにする」へのコメント http://dobon.net/cgi-bin/pc/pc.php?mode=v&id=datagridview%2Fcomboboxdropdownstyle.html 「DataGridViewのコンボボックスにユーザーが文字列を入力できるようにする」に投稿されたコメントの一覧 ja https://dobon.net/banner/dbs1.gif http://dobon.net/cgi-bin/pc/pc.php?mode=v&id=datagridview%2Fcomboboxdropdownstyle.html 「DataGridViewのコンボボックスにユーザーが文字列を入力できるようにする」へのコメント 88 31 通常のコメント http://dobon.net/cgi-bin/pc/pc.php?mode=v&id=datagridview%2Fcomboboxdropdownstyle.html#8 >何か良い方法はないのでしょうか。。

http://dobon.net/vb/dotnet/datagridview/textboxevent.html
こちらの方法で(適宜DataGridViewComboBoxEditingControlに置き換えて)キーイベントを捕捉し、
dataGridViewTextBox_KeyPressの中で

private void dataGridViewTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
DataGridViewComboBoxEditingControl cb = (DataGridViewComboBoxEditingControl)sender;
if (dataGridView1.CurrentCell.OwningColumn.Name == "ComboBox" &&
dataGridView1.CurrentCell.OwningColumn is DataGridViewComboBoxColumn)
{
cb.DroppedDown = false;
}
}

としてドロップダウンリストを消すことでうまくいきました。]]>
Tue, 08 Jul 2014 01:10:58 +0900 http://dobon.net/cgi-bin/pc/pc.php?mode=v&id=datagridview%2Fcomboboxdropdownstyle.html#8
通常のコメント http://dobon.net/cgi-bin/pc/pc.php?mode=v&id=datagridview%2Fcomboboxdropdownstyle.html#7
何か良い方法はないのでしょうか。。]]>
Mon, 11 Jun 2012 16:48:03 +0900 http://dobon.net/cgi-bin/pc/pc.php?mode=v&id=datagridview%2Fcomboboxdropdownstyle.html#7
通常のコメント http://dobon.net/cgi-bin/pc/pc.php?mode=v&id=datagridview%2Fcomboboxdropdownstyle.html#6 >なぜかe.FormattedValueには""(空文字)が入ってきてし
>まいます

DroppedDown = Flase

にすれば上手くいくと思います。]]>
Sun, 13 May 2012 16:35:33 +0900 http://dobon.net/cgi-bin/pc/pc.php?mode=v&id=datagridview%2Fcomboboxdropdownstyle.html#6
通常のコメント http://dobon.net/cgi-bin/pc/pc.php?mode=v&id=datagridview%2Fcomboboxdropdownstyle.html#5 Tue, 28 Feb 2012 15:30:47 +0900 http://dobon.net/cgi-bin/pc/pc.php?mode=v&id=datagridview%2Fcomboboxdropdownstyle.html#5 通常のコメント http://dobon.net/cgi-bin/pc/pc.php?mode=v&id=datagridview%2Fcomboboxdropdownstyle.html#4
こちらのソースを実装し色々テストしてみたのですが、1点どうしてもできない操作がありました。
コンボボックスセルにフォーカスがあたった状態で「Alt」+「↓」キーでリストを表示し、
その状態でリストにない文字列を打ちEnterを押下すると
なぜかe.FormattedValueには""(空文字)が入ってきてしまいます。

どうにもできないのでしょうか・・・。]]>
Thu, 24 Feb 2011 16:29:10 +0900 http://dobon.net/cgi-bin/pc/pc.php?mode=v&id=datagridview%2Fcomboboxdropdownstyle.html#4
評価の理由 http://dobon.net/cgi-bin/pc/pc.php?mode=v&id=datagridview%2Fcomboboxdropdownstyle.html#3 Thankyou, for helping me out... :)

cheers.]]>
Mon, 20 Apr 2009 18:57:07 +0900 http://dobon.net/cgi-bin/pc/pc.php?mode=v&id=datagridview%2Fcomboboxdropdownstyle.html#3
通常のコメント http://dobon.net/cgi-bin/pc/pc.php?mode=v&id=datagridview%2Fcomboboxdropdownstyle.html#2 ここを参考にセル単位に改造してでやってみようとしたのですがなかなかうまくいかず苦労しました・・・
で、最終的に英文のサイトで見つけた手法を使って無事
解決したので後学の為書いておきます。(あと忘れた頃の自分の為に(^_^; )
private: void DataGridView_CellValidating(System::Object^ sender, DataGridViewCellValidatingEventArgs^ e)
{
DataGridView^ dgv = (DataGridView^)sender;

if ( dgv->CurrentCell->GetType() == DataGridViewComboBoxCell::typeid )
{
DataGridViewComboBoxCell^ cell = (DataGridViewComboBoxCell^)dgv->CurrentCell;

System::Object^ eFV = e->FormattedValue;
if ( !cell->Items->Contains(eFV) )
{
cell->Items->Insert( 0, eFV );
if ( dgv->IsCurrentCellDirty )
{
// メモ
// どうもセル単位でやるときは、CommitEditが重要みたい。
// http://www.dotnetmonster.com/Uwe/Forum.aspx/winform/18917/Need-to-create-new-row-in-DataGridView
// 情報源は↑ここ。
dgv->CommitEdit( DataGridViewDataErrorContexts::Commit );//これがミソかも
cell->Value = cell->Items[0];
}
}
}
}
あ、c++/cli なので適当に読み替えてください(^と->とタイプの比較を除けば殆ど一緒。)]]>
Sat, 28 Feb 2009 18:25:38 +0900 http://dobon.net/cgi-bin/pc/pc.php?mode=v&id=datagridview%2Fcomboboxdropdownstyle.html#2
評価の理由 http://dobon.net/cgi-bin/pc/pc.php?mode=v&id=datagridview%2Fcomboboxdropdownstyle.html#1 編集できるようになりましたが、
enterで確定すると元に戻るけーすがあります。
行ヘッダの▲が鉛筆(編集モード)にならないときは
反映されません。
行ヘッダの▲が鉛筆(編集モード)になったときは
反映されます。]]>
Sun, 01 Feb 2009 18:33:17 +0900 http://dobon.net/cgi-bin/pc/pc.php?mode=v&id=datagridview%2Fcomboboxdropdownstyle.html#1