0

私はかなり複雑なComboBoxシナリオを持っており、プログラミングに慣れていないので、最善のアプローチをとるのに苦労しています。

データのいくつかの数値列を持つDataTableを持つDataSetがあります。数値データは、米国標準単位で指定された距離で構成されています。現在、ComboBoxをセットアップして機能させていますが、現在持っているものを2つの方法で拡張する必要があります。

  1. 表示されているデータ列の10進数を分数に変換できるようにする必要がありますが、これを実行してデータバインディングを維持する方法はありますか?この場合、データソースの表示メンバー...

  2. ドロップダウンオプションをさまざまな単位のセットで表示できるようにする必要があります...これを処理するのに役立つ単位変換クラスを作成しましたが、どういうわけかこれも実行してデータバインディングを維持できるかどうかわかりません?ディスプレイメンバーの単位も変換したいのですが...

    Private Sub ComboBox1_SelectedIndexChanged(sender As System.Object, e As         System.EventArgs) Handles ComboBox1.SelectionChangeCommitted
     Select Case ComboBox1.SelectedItem
        Case "Tire1"
            With ComboBox2
                .DataSource = Tire1BindingSource
                .ValueMember = "OD"
                .DisplayMember = "OD"
            End With
        Case "Tire2"
            With ComboBox2
                .DataSource = Tire2BindingSource
                .ValueMember = "OD"
                .DisplayMember = "OD"
            End With
        Case "Tire3"
            With ComboBox2
                .DataSource = Tire3BindingSource
                .ValueMember = "OD"
                .DisplayMember = "OD"
            End With
        Case "HubCap"
            ComboBox3.DataSource = Nothing
            With ComboBox2
                .DataSource = HubcapBindingSource
                .ValueMember = "ID"
                .DisplayMember = "ID"
            End With
      End Select
    End Sub
    
    Private Sub ComboBox2_SelectedIndexChanged(sender As System.Object, e As      System.EventArgs) Handles ComboBox2.SelectionChangeCommitted
    Select Case ComboBox1.SelectedItem
        Case "Tire1"
            With ComboBox3
                .DataSource = Tire1BindingSource
                .ValueMember = "ID"
                .DisplayMember = "Weight"
            End With
        Case "Tire2"
            With ComboBox3
                .DataSource = Tire2BindingSource
                .ValueMember = "ID"
                .DisplayMember = "Weight"
            End With
        Case "Tire3"
            With ComboBox3
                .DataSource = Tire3BindingSource
                .ValueMember = "ID"
                .DisplayMember = "Weight"
            End With
        Case "HubCap"
            ComboBox3.DataSource = Nothing
            With ComboBox2
                .DataSource = HubCapBindingSource
                .ValueMember = "ID"
                .DisplayMember = "ID"
            End With
    End Select
    

分数や単位の表示などの問題を処理するときにComboBoxを使用するための最良のアプローチは何ですか...

4

1 に答える 1

0

はい、DataBindingsに影響を与えることなく分数を描画できます。DrawModeプロパティとハンドルDrawItemおよびMeasureItemイベントを設定する必要があります。詳細については、このMSDNの記事を参照してください。

于 2011-10-02T03:45:49.140 に答える