【问题标题】:Combobox selected Item does not match with its selected组合框选定项与其选定项不匹配
【发布时间】:2023-03-04 10:23:01
【问题描述】:

我遇到了在字母完成后出现空格超过 Combobox.SelectedItem 长度的问题。为什么?我该如何解决这个问题?

下面是我的问题,它是一个非常短小的视频。 Here is a small video

Imports System.Data.SqlClient
Public Class Main
WithEvents bsData As New BindingSource
Dim sConn As New SqlConnection
Dim dt As New DataTable
Dim ds As New DataSet
Private Sub Main_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    sConn.ConnectionString = "Data Source=PC-N39;Initial Catalog=Esi01;Persist    Security Info=True;User ID=sa;Password=sas"
    sConn.Open()
    Try
        Dim myTable As DataTable = New DataTable("MyTable")
        myTable.Columns.Add(New DataColumn("Group Code"))
        myTable.Columns.Add(New DataColumn("Description"))
        myTable.Columns.Add(New DataColumn("NothingSerious"))
        Dim cmd As New SqlCommand("Select * from tbUnit", sConn)
        Dim dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.Default)
        Dim myRow As DataRow
        While dr.Read()
            myRow = myTable.NewRow
            myRow.Item(0) = dr(0)
            myRow.Item(1) = dr(1)
            myRow.Item(2) = dr(2)
            myTable.Rows.Add(myRow)
        End While
        dr.Close()
        Dim myData4 As DataTable = myTable
        ds = New DataSet()
        ds.Tables.Add(myData4)
        MultiColumnCombo1.DisplayMember = "Group Code"
        MultiColumnCombo1.DrawMode = DrawMode.OwnerDrawVariable
        MultiColumnCombo1.ColumnWidths = "50;150"
        MultiColumnCombo1.DataSource = myData4
        MultiColumnCombo1.Text = String.Empty
    Catch ex As Exception
        MsgBox(ex.ToString)
    End Try
    sConn.Close()
End Sub
End Class

【问题讨论】:

  • 请提供您的组合框代码。

标签: vb.net winforms events combobox


【解决方案1】:

MultiColumnCombo1 是什么类型?我想这是第三方组件。 据我在您的视频中看到的,它似乎占用了数据中最大的元素,取其长度并为其他元素添加空格以使其大小相同。

您可能无法更改组件的行为,但您可以将相同的逻辑应用于您在 TextBox 中输入的内容:添加空格以使它们匹配。或者,如果您只需要创建一个条件来测试它们是否相等,您可以执行以下操作:

if(YourComboboxSelectedItem.Trim() == StringYourAreComparingItTo)

请参阅String.Trim(),这将丢弃多余的空格。

【讨论】:

  • 是的,它是第三方的。我知道 Trim 函数,并且在控件通过 combobox.text 传递选定项时,我还在 combobox.selecteditem.text 中使用它,但它没有这样做。
  • 好的,所以我很难理解您要做什么。是否要删除 3rd 方组件中的空格?如果是这样,为什么?
  • 我尝试通过 combobox.text 传递带有修剪功能的选定项目,但组合框选定项目没有任何变化,我仍然看到空格。其实这是我要解决的问题,
  • 嗯,这完全取决于第 3 方组件。您可能应该在问题中包含它的名称。如果它来自已知的控制库(基础设施等),您甚至可以添加相应的标签。这样你会得到更好的帮助。
  • 有人告诉我,这可能是缺少从 Sql 表中检索数据的功能 od Datatable。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-09
  • 2015-09-30
相关资源
最近更新 更多