C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 173 を表示中)
■99443 / )  Re[1]: コンボボックスの表示方法
□投稿者/ 魔界の仮面弁士 (3313回)-(2022/04/12(Tue) 15:14:50)
No99440 (TA さん) に返信
> デバックで確認した所、
デバックではなく
デバッグですよ。

bug (バグ) を取り除くので debug (デバッグ)。


> cboBoxに00、30を規定値で設定をしていますが、
規定値 (specified value) ではなく
既定値 (default value) かな。


> デバックで確認した所、コンボボックスにはデータの設定(例のデータだと"01")はされています。
ドロップダウンリストのアイテムに "01" が存在する状態でしょうか。
それともリストには無く、テキスト部にのみ "01" がある状態でしょうか。



> コンボボックスのプロパティでDropDownStyleにDropDownの設定をしていますが、
DropDownList ではなく、DropDown なのですね。

DropDown の場合は、テキストとリストは独立しており、
テキスト部の内容がリストにある内容と同一であったとしても
SelectedIndex が -1 になりえる点にご注意を。


> データベースよりデータ取得時、00、30以外のデータがあり、
> 00、30以外のデータをコンボボックスに表示したいのですが、
登録されているアイテムは、すべて String 型のデータなのですね?

一見すると
 .Items.Add(30) と
 .Items.Add(30.0) と
 .Items.Add("30") は、
いずれも見た目では同じですが、型が異なるがために
処理する上で差異が生じることがあります。



> Me.cboBox.Text = VB6.Format(datTemp, "nn") ''分 例"01"の設定が行われる

やりたいことは、次のうちどれでしょうか。

(1) ComboBox のリスト部に "01" というデータが既にあることは分かっており、それが選択された状態にしたい。
(2) ComboBox のリスト部に "01" があれば選択し、無ければ何も選択されていない状態にしたい。
(3) ComboBox のリスト部に "01" があれば選択し、無ければテキスト部に "01" が記載された状態にしたい。
(4) ComboBox のリスト部に "01" が無ければ追加し、かつ "01" が選択された状態にしたい。


Public Class Form1
  Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    ComboBox1.Items.AddRange(New Object() {"", "00", "01"})
    ComboBox2.Items.AddRange(New Object() {"", "00"})
    ComboBox3.Items.AddRange(New Object() {"", "00"})
    ComboBox4.Items.AddRange(New Object() {"", "00"})
    ComboBox5.Items.AddRange(New Object() {"", "00", "01", "02"})
  End Sub

  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    ComboBox1.SelectedItem = "01"
    ComboBox2.SelectedItem = "01"
    Dim idx = ComboBox3.FindStringExact("01")
    ComboBox3.SelectedIndex = If(idx >= 0, idx, ComboBox3.Items.Add("01"))
    ComboBox4.Text = "01"
    ComboBox5.Text = "01"
  End Sub
End Class
返信 編集キー/


管理者用

- Child Tree -