• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C# ListBoxのキーボードマッチを無効にしたい)

C# ListBoxのキーボードマッチを無効にする方法

このQ&Aのポイント
  • .NET FW2.0+C#で使用するListBox(ドロップダウンリスト)において、キーボードの英数キーを押した際に自動的にマッチする機能を無効にする方法を教えてください。
  • プロパティには該当するものがなく、イベント処理で対応するしかないようです。どのような処理を行えばキーボードマッチを無効にすることができるのか教えていただけませんか。
  • C#のListBoxでキーボードマッチ機能を無効にする方法について教えてください。リスト内のValue先頭値と自動的にマッチする機能を無効にするためには、どのようにプログラムを記述すれば良いのでしょうか。

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

ListBoxのKeyPressイベントを処理するようにしましょう イベントハンドラを private void listBox1_KeyPress(object sender, KeyPressEventArgs e) {   // キーは処理済ですといったことになる   e.Handled = true; } といった具合で定義しておきます this.listBox1.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.listBox1_KeyPress); といった具合で イベントハンドラをInitializeComponentなどで接続します

mappy88
質問者

お礼

早速のご回答ありがとうございました。 実はスプレッド上のドロップダウンリストでマッチングを行わせると例外が発生していた事象を止めようとしていました。そこでイベントを取得して何とか・・・と考えていたのですが、AutoSearchプロパティがスプレッドに存在する事が判明し、そちらをfalseに・・・・と、またまた考えていたのですがやはり使い勝手が悪いため、調べてみましたところListBoxをスプレッドに渡していたのですが、string配列を渡すべきでした。 今回はお教え頂いた方法を役立てる事ができませんでしたが、後学の参考になりました。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • CLRでのListBoxのオーナードローのやり方。

    Visual C++のCLRでフォームアプリケーションを作っていて、ListBoxのオーナードローの方法がわからないので質問させてもらいました。 CLRでプログラミングしたことが無く書籍などを読んだこともなく見よう見まねで作っています。 やりたいことはとりあえず http://dobon.net/vb/dotnet/control/lbownerdraw.html にあることです。 サンプルプログラムはVBとC#でC++がありません。 MSDN(http://msdn.microsoft.com/ja-jp/library/system.windows.forms.listbox.drawitem.aspx)も同様でVBとC#のサンプルプログラムでC++がありませんでした。 とりあえず。 C#のサンプル----------------------------------------------- //DrawItemイベントハンドラ //項目を描画する private void ListBox1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e) { //背景を描画する //項目が選択されている時は強調表示される e.DrawBackground(); //文字を描画する色の選択 Brush b = null; if ((e.State & DrawItemState.Selected) != DrawItemState.Selected) { //選択されていない時 switch (e.Index % 3) { case 0: b = new SolidBrush(Color.Red); break; case 1: b = new SolidBrush(Color.Blue); break; case 2: b = new SolidBrush(Color.Green); break; } } else { //選択されている時はそのままの前景色を使う b = new SolidBrush(e.ForeColor); } //描画する文字列の取得 string txt = ((ListBox) sender).Items[e.Index].ToString(); //文字列の描画 e.Graphics.DrawString(txt, e.Font, b, e.Bounds); //後始末 b.Dispose(); //フォーカスを示す四角形を描画 e.DrawFocusRectangle(); } ----------------------------------------------- を参考にしてForm1に private: System::Void ListBox1_DrawItem(System::Object^ sender, System::Windows::Forms::DrawItemEventArgs^ e) { //背景を描画する //項目が選択されている時は強調表示される e->DrawBackground(); //文字を描画する色の選択 } と書いてみたのですが、そのあとどうすればよいかわかりません。 わかる方、回答お願いします。

  • C# OpenFileDialogの制御方法

    こんにちは。 OpenFileDialogを利用し、ユーザーにファイルを選択させたいと思っています。そこまでは問題なくできるのですが、ユーザーにファイル選択のみさせたいと思っています。 OpenFileDialog上でファイルを作成できたり、特にファイルを誤って削除できないようにさせたいと思っています。 下記のURLは見たのですが、実現するプロパティが無いように思えます。 https://msdn.microsoft.com/ja-jp/library/system.windows.forms.openfiledialog%28v=vs.110%29.aspx 何か実現させる方法はあるでしょうか?よろしくお願いします。

  • 【C#】コンボボックスにおけるSelectionStart

    C#でツールを作っています。 テキストボックス内に書かれている文字列中にカーソルを置いて そのカーソル部分に任意の文字を挿入する処理に、TextBox.SelectionStart を使っています。 text_box.Text = text_box.Text.Insert(text_box.SelectionStart, string_word); text_box …テキストボックス名 string_word …挿入する文字 これを同じようにコンボボックスの中でもやりたいのですが ビルドエラーにはならないものの、上手く動作しません。 デバッグで見てみると、SelectionStart=0 となっており、 常にコンボボックス内の先頭に挿入されてしまいます。 コンボボックスでは無理なのでしょうか? MSDNライブラリでは、テキストボックスと変わらない説明がされているのですが… http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.combobox.selectionstart(VS.80).aspx

  • バルーンのアイコンをカスタマイズするには?

    Windowsのバルーンチップ(※)について質問です。 ※.Netライブラリ:System.Windows.Forms.Notifyicon バルーン内のアイコンをGoogleアップデータのようにオリジナルのものにしたいのですがその方法がわかりません。 MSDNにはWindows標準のアイコンを指定する方法しか載っておらず困っています。 どうすればGoogleアップデータのようにオリジナルのものにできるのでしょうか? ■開発環境 Microsoft Visual Basic 2005 Express Edition ■MSDN>System.Windows.Forms.Notifyicon http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.notifyicon(VS.80).aspx ■バルーン事例 http://www.dworkers.com/dss/p/faqdoc/001/

  • チェックボックスのオンフォーカスについて

    チェックボックスにフォーカスが当たると、テキスト部にフォーカスが当たると思われるのですが、現開発ではチェックボックスのテキストプロパティには何も入力をしない仕様になってしまいました。 当然、Tab移動時等で該当するチェックボックスにフォーカスが当たってるのですが、外見ではフォーカス状態がわかりません。 フォーカスをテキスト部ではなく、チェックする部分にフォーカスを当てる方法はありませんでしょうか? どなたか、ご教授をお願いいたします。

  • C# listbox

    どうしても解らないのでご教授お願いたします. やりたいことは単純なのですが,リストボックスにドラックドロップしたときに表示する フォント(文字の色とサイズ)を変更したいのですが,下記のプログラムではドラッグドロップ するとリストが真っ白になってしまいます.いろいろ調べたのですが何が原因が解りません. 何卒よろしくお願いいたします. private void listBox1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) { listBox1.Items.Clear(); listBox1.DrawMode = DrawMode.OwnerDrawVariable; //コントロール内にドロップされたとき実行される //ドロップされたすべてのファイル名を取得する string[] fileName = (string[])e.Data.GetData(DataFormats.FileDrop, false); //ListBoxに追加する listBox1.Items.AddRange(fileName); listBox1.Sorted = true; } private void listBox1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e) { //コントロール内にドラッグされたとき実行される if (e.Data.GetDataPresent(DataFormats.FileDrop)) { //ドラッグされたデータ形式を調べ、ファイルのときはコピーとする e.Effect = DragDropEffects.Copy; } else { //ファイル以外は受け付けない e.Effect = DragDropEffects.None; } } //DrawItemイベントハンドラ //項目を描画する private void ListBox1_DrawItem(object sender,System.Windows.Forms.DrawItemEventArgs e) { //背景を描画する Font cfont = new Font("MS P明朝", 9, FontStyle.Bold); //適切な色で背景を描画する。 e.DrawBackground(); Rectangle rec = e.Bounds; Graphics g = e.Graphics; Color col = Color.Black; Font deffont = e.Font; deffont = cfont; string txt = ((ListBox)sender).Items[e.Index].ToString(); TextRenderer.DrawText(g, txt, deffont, rec, col, TextFormatFlags.Default); }

  • VC スクロールバーの移動?

    お世話になります。 以下の2点の解決方法を教えていただけないでしょうか 複数のスクロールバーを配置した際に、 起動直後のどのスクロールバーにもフォーカスがされていない状態で、 キーボードの矢印キーを押下すると、 先頭のスクロールバーが変化してしまいます。 フォーカスされている時は矢印キーで変化してもよいのですが、 フォーカスされていない時に変化しない様にするには、 どの様にすればよいのか教えていただけないでしょうか? もう一つ スクロールバー以外の処をクリックしたら フォーカスを外したいのですが、 どの様にすればフォーカスが外れるのでしょうか? 【開発環境】 visual studio 2010 c++/CLI

  • キーボードの動作不良について

    本体は、NEC VALUESTER NX VE40H/8 キーボードは本体付属の物 OSはWinXPなのですが、キーボードの一部のキーのみ入力が普通には入力出来ず、連打すると入力出来たり、全く出来なかったりします。動作不良を確認しているのは「CapsLock 英数」とアルファベットの「Kの」とスペースキー横の「変換」などです。他のキーは正常に機能しているようですし、キーボードのプロパティからデバイスの状態を確認すると「正常に機能しています」と表示されています。 他の方の同じような質問に対する回答に、壊れているかどうか調べる方法などが書かれてありましたが、内容が私には難しくて理解出来ませんでした。キーボードが壊れているなら買い求めようと思っているのですが、原因がキーボード以外にあるのであれば、原因を直さなければいけませんので、いづれにせよ対処方法を簡単に教えていただけたらと思います。

  • ATOK2013で英数キーを押すと半角英数になる

    ATOK2013を使っています。キー設定はMS-IMEになっています。 かな入力の状態で「英数」キーを押すと今までは全角英数になっていたのですが,あるときから半角英数になるようになってしまいました。どのように設定を戻せばよいでしょか。 また,文字入力画面を選択していない状態だと「IMEが無効です」となりますが,文字入力中以外も常にIMEを有効にしておく方法はないでしょうか。単語登録やプロパティ編集のためにいちいち文字入力画面を開くのが面倒です。

  • 【iアプリ】選択した項目に連動して表示するコンポーネントを変更したい

    dojaをつかってiアプリを作りたいと思っている初心者です 実現したい内容は下記の通りです ========================================  [初期状態]   panelにドロップダウンリスト(ListBox.CHOICE)を表示  [実現したい内容]   1.ドロップダウンリストから1つ選択する   2.その内容に紐づく内容をドロップダウンリストの下に     アンカーテキストで表示する   3.再度ドロップダウンリストで他の項目を選択した場合、     今まで表示していたアンカーテキストをクリアし     新たに選択された内容に紐づく内容を     ドロップダウンリストの下に表示する ======================================== 2.までは実現できたのですが、3.の処理を行うにあたって 2.の内容をクリアする方法がわかりません また、2.で表示する項目の件数は選択した項目により変わります またこのような制御はiアプリでは一般的ではないのでしょうか? ご存知の方がいらっしゃいましたら是非ともよろしくお願いいたします

    • ベストアンサー
    • Java