[リストへもどる]
一括表示

投稿時間:2003/01/10(Fri) 22:28
投稿者名:はらだ
URL :
タイトル:
ComboBox.Textプロパティへの設定について
お世話になっております。
はらだと申します。

VB.netでの質問です。
ComboBoxのドロップダウンリストで項目を選択した場合に、選択したリストの値を変更して
ComboBox.Textに設定したいのですが、なかなかうまくいきません。
そこで、もし知っている方がいらしたら、教えて頂けないでしょうか。

具体的には、

顧客コード 顧客名
-------- ------
01       はらだ
02       いとう
03       さとう
04       すずき

この様に、ComboBoxのドロップダウンリストに”顧客コード”と”顧客名”を連結して設定
してあり、1行目の”01       はらだ”を選択した場合に、ComboBox.Textへは”01”のみを
表示したいと考えています。

そこで、SelectedIndexChanged、SelectedValueChanged、そしてSelectionChangeCommittedイベント
にて変更を行ったのですが、まったく反映されませんでした。

サンプルコードを載せておきますので、よろしくお願いいたします。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
    Private Sub ComboBox_SelectionChangeCommitted(ByVal sender As Object, ByVal e As System.EventArgs) _
            Handles ComboBox.SelectionChangeCommitted
        Me.ComboBox.Text = Microsoft.VisualBasic.Left(Me.ComboBox.Text, 2)
    End Sub

投稿時間:2003/01/11(Sat) 10:20
投稿者名:よねKEN
Eメール:
URL :http://www5b.biglobe.ne.jp/~yone-ken/
タイトル:
Re: ComboBox.Textプロパティへの設定について
> VB.netでの質問です。
> ComboBoxのドロップダウンリストで項目を選択した場合に、選択したリストの値を変更して
> ComboBox.Textに設定したいのですが、なかなかうまくいきません。

ドロップダウンリストのときのTextプロパティはリスト内にある
項目の文字列しか指定できないと思います。
#それ以外を指定しても無効になる

どのみちこのときのText部分には入力不可で表示のみなので、
そのままではまずいんでしょうか?データとしてプログラム内で使うときに、
はじめてTextプロパティから顧客コードを切り出せばよいように思います。

投稿時間:2003/01/11(Sat) 17:03
投稿者名:はらだ
URL :
タイトル:
Re^2: ComboBox.Textプロパティへの設定について
> ドロップダウンリストのときのTextプロパティはリスト内にある
> 項目の文字列しか指定できないと思います。
> #それ以外を指定しても無効になる
>
> どのみちこのときのText部分には入力不可で表示のみなので、
> そのままではまずいんでしょうか?データとしてプログラム内で使うときに、
> はじめてTextプロパティから顧客コードを切り出せばよいように思います。

よねKENさん。
どうも、ありがとうございます。

大変失礼しました。
”ドロップダウンリスト”ではなく”DropDownStyle=DropDown”です。
(Textプロパティの編集が出来る方です)

説明不足でしたが、目的は選択したリストの顧客名を、フォーム上の離れたところに配置した
Labelに表示し、ComboBox.Textプロパティには顧客コードのみを設定させたいからなのですが、
いかがでしょうか。ご意見、よろしくお願いいたします。

投稿時間:2003/01/14(Tue) 15:53
投稿者名:takk
Eメール:takk_neo@hotmail.com
URL :
タイトル:
Re^3: ComboBox.Textプロパティへの設定について
VB.NETはあまり経験がないのですが……。

色々試した結果こういう方法でしか出来なさそうです。
Timerコントロールを別に用意しておいて、

    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        Timer1.Enabled = True
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        sender.Enabled = False

        ComboBox1.Text = ComboBox1.Text.Substring(0, 2)
    End Sub

こんな感じで一応実現可能です。
あまりきれいなプログラムとは言えませんが。

投稿時間:2003/01/14(Tue) 20:45
投稿者名:はらだ
URL :
タイトル:
Re^4: ComboBox.Textプロパティへの設定について
> VB.NETはあまり経験がないのですが……。
>
> 色々試した結果こういう方法でしか出来なさそうです。
> Timerコントロールを別に用意しておいて、
>
>     Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
>     Handles ComboBox1.SelectedIndexChanged
>         Timer1.Enabled = True
>     End Sub
>
>     Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
>         sender.Enabled = False
>         ComboBox1.Text = ComboBox1.Text.Substring(0, 2)
>     End Sub
>
> こんな感じで一応実現可能です。
> あまりきれいなプログラムとは言えませんが。

takkさん。
どうも、ありがとうございます!

なるほど、Timerコントロールを使った擬似的な方法もあるんですね。
参考になりました。

私としては、もう少しやり方を模索してみたいと思います。
(ComnboBoxにおけるリストの幅を設定できるようになった位ですから・・・)

今後ともよろしくお願いいたします。