Изменение ширины столбца в выпадающем списке, связанном с набором данных в .net - PullRequest
0 голосов
/ 30 сентября 2011

У меня есть ComboBox с источником данных, являющимся набором данных из базы данных SQL Server.

Ширина его столбцов относительно ширины имени столбцов.Я хотел бы увеличить эту ширину, чтобы правильно видеть содержимое, а не вырезать его.

Вот снимок экрана, о котором я говорю:

снимок экрана http://uploadpic.org/storage/2011/thumb_iDSwsbVfSB4mbWvR1xNmm98Fp.png

Как видите, значения во втором столбце отображаются не полностью.

Вот метод, который я использую для загрузки ComboBox:

Public Sub CargarComboAlternativo(ByVal Combo As ComboBox, ByVal query As String)
    Dim connectionString As String = "Data Source=" & Servidor & ";Database=" & Bdatos & ";Trusted_Connection=Yes;UID=" & UID & ";"
    Dim adapter As SqlDataAdapter
    Dim dataSet As DataSet = New DataSet()

    Try
        Using conn As SqlConnection = New SqlConnection(connectionString)
            Using command As New SqlCommand(query, conn)

                command.CommandType = CommandType.Text

                conn.Open()

                adapter = New SqlDataAdapter(command)
                dataSet.Clear()
                adapter.Fill(dataSet)

                Combo.DataSource = dataSet
            End Using
        End Using
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Sub

Есть предложения?

Я совсем не против предложения в C #, у меня не будет проблем с переводом его на vb.net

1 Ответ

1 голос
/ 30 сентября 2011

как насчет чего-то вроде в конце:

Dim total As Integer = 0
Dim maxLen As Integer = 0
For Each row As DataRow In ds.Tables(0).Rows
  total = 0
  For Each Str As String In row.ItemArray
    total = Str.Length + total
  Next
  If maxLen < total Then maxLen = total
Next

Combo.Width = maxLen + 5

Я знаю его грубую силу, но вы найдете самый длинный предмет и установите его ширину. +5 для заполнения, вам может понадобиться это изменить.

...