0

我有一个相当复杂的 ComboBox 场景,并且作为编程新手,我正在努力寻找最好的方法。

我有一个带有 DataTable 的 DataSet,该 DataTable 有几个数字列的数据。数字数据由以美国标准单位给出的距离组成。我目前有我的 ComboBoxes 设置和工作,但我需要以两种方式扩展我目前拥有的内容。

  1. 我需要能够将显示的数据列中的小数转换为分数,有没有办法做到这一点并维护数据绑定?在这种情况下,它是数据源的显示成员......

  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
    

在处理显示分数和单位等问题时,使用组合框的最佳方法是什么...

4

1 回答 1

0

是的,您可以在不影响 DataBindings 的情况下绘制分数。您必须设置 DrawMode 属性和句柄DrawItemMeasureItem事件。有关更多信息,请阅读MSDN 文章;

于 2011-10-02T03:45:49.140 回答