コンボボックスのタイプと文字入力の挙動について

このQ&Aのポイント
  • Visual Studio 2008で開発中のプロトタイプでは、コンボボックスのタイプは「DropDownList」であり、ユーザーは値の追加ができません。また、文字を入力した場合にはその場所にカーソルが移動するように設定しています。
  • 今後は本番でVisual Studio 2010を使用する予定です。コンボボックスで文字を入力した場合、1文字目だけでなく2文字目でも候補を絞りたいと考えています。
  • 例えば、コンボボックスの中身が「BN:バナナ」「AP:りんご」「SB:いちご」「PI:パパイヤ」「PA:パイナップル」となっている場合、文字入力「P」ではPIの場所にカーソルが移動しますが、「PA」と入力するとAPの場所にカーソルが移動してしまいます。これを改善し、「PA」と入力した場合にはPAの場所にカーソルが移動するようにしたいです。
回答を見る
  • ベストアンサー

コンボボックスについて

Visual Strudio 2008、.NetFramwork 3.5 で開発をしています 今はプロトタイプなので2008で作成していますが、本番ではVisualStudio 2010を使う予定です VisualStudioの中のVBで、Windowsフォームの画面の開発をしています そこでコンボボックスで質問なのですが、 コンボボックスのタイプは「DropDownList」でユーザーさんが値の追加を出来ないようにしています コンボボックスで文字を入力した場合、その場所にカーソルがいくようにと思っています コンボボックスで文字を入力した場合、候補を1文字目だけでなく2文字目でも絞れるようにしたいのです 中身が BN:バナナ AP:りんごSB:いちご PI:パパイヤ PA:パイナップル とあった場合、 「P」と入力したら、PIの場所に来るのですが、「PA」と入力すると、AのAPの場所にカーソルが 来てしまいます 「PA」と入力したら、PAの場所にカーソルがきてほしいのですが・・・可能なのでしょうか よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

AutoCompleteSource プロパティを ListItem AutoCompleteMode プロパティを Suggest とか にしてみると良いかも。 ただし、"PA" の場合、"P" と "A" の間が 2、3 秒たっちゃうとダメです。

kapibaraPG
質問者

お礼

ありがとうございます! まさにやりたかったことです!! 検索しても見つからないし、周りの人からは「無理だ」、「Pを入れた後Aで検索したかったらどうするんだ」と言われてあきらめかけてました 本当にありがとうございます

関連するQ&A

  • グループボックス内のコンボボックスについて

    お世話になります。 WindowsXP / VC2005 / VC++ MFC / ダイヤログベースにて開発を行っています。 グループボックス内にコンボボックスを2つ配置しています。 コンボボックスにカーソルを合わせて、マウスホイールをスクロールした際、 ボックスの中身がスクロールしないのですが、スクロールする方法をご存知でしたら教えていただけないでしょうか? グループボックス外にコンボボックスを配置した場合では、ボックスの中身がスクロールされており、 再度グループボックス内にてプロパティを変更したりと試してみたのですが、思うように行きません。 よろしくお願いいたします。

  • コンボボックスについて

    お世話になっております Visual Strudio 2010、.NetFramwork 3.5 で開発をしています VisualStudioの中のVBで、Windowsフォームの画面の開発をしています コンボボックスで質問なのですが、 コンボボックスで、「text」と、「value」を追加しようと思っています DataTable、ArrayList以外での「text」「value」の両方追加は可能でしょうか VB2003の、Webフォームで開発していたときは Combobox.additem(New ListItem("Key", "Disp") ができたのですが・・・ これと似たような機能は2010ではないのでしょうか もうひとつ、ArrayListで追加する場合、ArryListの順番がそのままValueの値になってしまいますが、ランダムな並びの数字のvalueでも、ArrayListでComboboxに追加できるでしょうか・・・

  • Spreadのコンボボックス

    いつもお世話になっております。 VB.NET2003とSpread2.5Jにて開発を行っております。 コンボボックスの列を作成し、コンボボックスへの入力も可能としたいのですが、どのようにすれば良いのでしょうか? (ComboBoxCellType.Editable の値を True にして入力は出来たのですが、コンボボックスのセルから抜けると入力された値が消えてしまいます。) どなたかご存知でしたらお教え願います。

  • コンボボックスの選択後のカーソル位置について

    VB6でプログラムを作成しています。 コンボボックスのリストから選択後のカーソル制御について質問です。 コンボボックスのリストから選択後に選択したものが全選択となり カーソルが文字列の最後尾に移動してしまいます。 文字列よりコンボボックスの幅が小さい場合にカーソルが最後尾に移動すると表示が先頭からの表示になりません。 選択後にコンボボックスの表示が選択したものの文字列が先頭から表示 されるように制御したいのですが。 どのように制御したらよいか、知っている方教えてください。

  • 【VS2015】コンボ ボックスの選択状態解除

    Visual Studio 2015 c++で開発をしています。 コンボ ボックスを DropDownList スタイルにして使用しています。 コンボ ボックスでリストを選択すると選択状態(青反転)になりますが、 選択した後に選択状態を解除する方法はありますか? よろしくお願いします。

  • コンボボックスの拡張

    MFCのコンボボックス機能の拡張について質問です。 コンボボックスを「EnableWindow( FALSE )」で使用不可にした際に、 通常は、ボックス内に表示されている文字色がグレーになり、 カーソルでの範囲選択も不可になりますが、 文字色を黒のままにし、カーソルで範囲選択(コピー操作も可)が可能になるような プログラムを作成したいのです。 ヒントとして得た情報としては、 ・CEditクラスが関係 ・メッセージマップ横取り がありますが、情報が少なすぎて手が付けられない状態です。。 もし知識のある方おられましたら、具体的な解決策などご教授頂けないでしょうか。 開発環境は、VC++2005です。 どうか宜しくお願い致します。

  • コンボボックス内のアイテムを選択してラベルを表示させるには?

    プログラミング初心者です。よろしくお願いします。 開発環境:XP HOME SP3 使用言語:VisualC# 使用ソフト:Visual Studio 2008 Professional コンボボックス内のアイテム選択すると、ラベルが最前面に表示させられるようにするにはどうすればいいでしょうか? コンボボックスはDropDownListにしています。

  • コンボボックスの文字を大きくしたい

    このサイトの中でコンボボックスの作成方法を知り利用致しました。   (手順)    (1)任意のセルにコンボボックスに反映させたい文字を作成する    (2)メニューバーより     [データ]⇒[入力規則]      [設定]タブより”入力値の種類”を”リスト”にし、       元の値を(1)で作成した文字を選択する ですが、この方法では、コンボボックスで表示される文字が 小さく見づらいものでした。 コンボボックス内で表示される文字の大きさを変更する方法を 教えていただけないでしょうか?

  • コンボボックスの作り方を教えて下さい。

    エクセル2000を使用しています。 コンボボックスを使って日付を入力できるようにしたいと 思っておりますが、具体的にどうすればよいのか分かりません。 任意の場所にコンボボックスを作る事は出来ます。 で、2個作成します。ここまでは出来ます。 左側の方には月の1~12、右側の方には日の1~31が出てきて 選択すれば入力す出来るという単純なものなんですが それがどうすればよいのか分かりません。 初心者の私にも分かるように教えて頂けると幸いです。

  • コンボボックスのイベントについて

    OS  :WindowsXP Pro SP1 開発環境:VisualStudio .NET 2003 開発言語:C# 開発形態:Windowsアプリケーション いつもこの場にお世話になっております。 今回もよろしくお願い致します。 現在、Windowsアプリケーションを作成しており、フォームにはコンボボックスとテキストが貼り付けてあります。コンボボックスは配列になっています。 using System.Windows.Forms; public class Form1 : System.Windows.Forms.Form { 省略   private ComboBox[] cmbArray = new ComboBox[3]; } private void Form_Load(object sender, System.EventArgs e) // フォームロード {   cmbArray[0] = comboBox1;   cmbArray[1] = comboBox2;   cmbArray[2] = comboBox3; } // イベントハンドラの登録 for( int i=0 ; i<3 ; i++) {   cmbArray[i].Validated += new System.EventHandler(ComboBoxClick); } private void ComboBoxClick(object sender, System.EventArgs e) {   MessageBox.Show(((ComboBox)sender).Text); } プログラムは上記のようになっています。 ここで質問なのですが、コンボボックス内のアイテムが変更されたらすぐに発生するイベントは何なのでしょうか?ここではClickイベントを使用していますが、コンボボックス内のアイテムを変更し、そのコンボボックスからカーソルが別のコントロールに移動して初めて発生します。 いろいろとイベントを試したのですが、どれもカーソルが移動する際に発生しているようなのです。 コンボボックス内のアイテムが変更されたらすぐに発生するイベントはあるのでしょうか?どなたかご存知の方がおりましたら、どうかご教授願います。

専門家に質問してみよう