SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Silverlight/WPFで使える逆引きTips集

Silverlight/WPFで使える逆引きTips集
――コンボボックス機能

(5) ComboBoxコントロール

11. 文字を入力して項目を選択する

 本 Tips は WPFのみとなります。

 ComboBox では IsEditable プロパティに True をセットすると、テキストボックスを表示させることができます。

 このテキストボックスに文字を入力すると、ComboBox 内の文字を選択することができるようになります。

 IsEditable プロパティを使用する場合は、IsReadOnly プロパティの値によって挙動が異なりますので注意してください。

IsEditable プロパティと IsReadOnly プロパティの関
  IsReadOnly = True IsReadOnly = False
IsEditable = True
  • 文字を入力して項目を選択できない
  • 項目に対応しない文字を入力できない
  • テキストボックス内の文字の一部を選択できる
  • テキストボックス内の文字をコピーできるが貼り付けできない
  • 文字を入力して項目を選択できる
  • 項目に対応しない文字を入力できる
  • テキストボックス内の文字の一部を選択できる
  • テキストボックス内の文字のコピーと貼り付けができる
IsEditable = False
  • 文字を入力して項目を選択できる
  • 項目に対応しない文字を入力できない
  • テキストボックス内の文字の一部を選択できない
  • テキストボックス内の文字をコピーまたは貼り付けできない
  • 文字を入力して項目を選択できる
  • 項目に対応しない文字を入力できない
  • テキストボックス内の文字の一部を選択できない
  • テキストボックス内の文字をコピーまたは貼り付けできない

 下記は ComboBox コントロールにテキストボックスを表示し、文字で項目を選択できるようにする例です。

文字を入力して項目を選択する例
文字を入力して項目を選択する例
XAMLの例
<ComboBox IsEditable="True"
          IsReadOnly="False">
    <ComboBoxItem>リンゴ</ComboBoxItem>
    <ComboBoxItem>ミカン</ComboBoxItem>
    <ComboBoxItem>バナナ</ComboBoxItem>
    <ComboBoxItem>パイナップル</ComboBoxItem>
    <ComboBoxItem>スイカ</ComboBoxItem>
    <ComboBoxItem>グレープフルーツ</ComboBoxItem>
</ComboBox>
VBの例
Private Sub Window_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
    '文字を入力して項目を選択できるようにする
    ComboBox1.IsEditable = True
    ComboBox1.IsReadOnly = False
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) 
    Handles Button1.Click
    If ComboBox1.SelectedItem Is Nothing Then
        MessageBox.Show("選択されている項目はありません")
    Else
        '選択されている項目を表示
        MessageBox.Show(DirectCast(ComboBox1.SelectedItem, ComboBoxItem).Content.ToString())
    End If
End Sub
C#の例
private void Window_Loaded(object sender, RoutedEventArgs e)
{
    // 文字を入力して項目を選択できるようにする
    comboBox1.IsEditable = true;
}

private void button1_Click(object sender, RoutedEventArgs e)
{
    if (comboBox1.SelectedItem == null)
        MessageBox.Show("選択されている項目はありません");
    else
        // 選択されている項目を表示
        MessageBox.Show(((ComboBoxItem)comboBox1.SelectedItem).Content.ToString());
}
ポイント

 文字を入力して項目を選択できるようにするには IsEditable プロパティを使用する。

次のページ
12. ドロップダウンの最大高さを設定する

この記事は参考になりましたか?

Silverlight/WPFで使える逆引きTips集連載記事一覧

もっと読む

この記事の著者

HIRO(ヒロ)

HIRO's.NETのHIROです。とある半導体工場のSEです。VB.NET, C#, PowerShellによるプログラミングを楽しんでいます。最近はBlog でPowerShellについて書いています。2008/07/07にPowerShell from Japan!!というサイトを立ち上げまし...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/5603 2010/12/08 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー