簡體   English   中英

Datagridview組合框項目為空白

[英]Datagridview Combobox items is blank

我正在嘗試在datagrid中使用combobox,一切正常。 但是,在運行時,組合框似乎不包含任何數據,這是我的代碼:

Dim cbtn As New DataGridViewComboBoxColumn
    Dim ls As New DataTable
    cbtn.Name = "Schedule"
    ls.Columns.Add("Day")
    ls.Rows.Add("Monday")
    ls.Rows.Add("Tuesday")
    ls.Rows.Add("Wednesday")
    ls.Rows.Add("Thursday")
    ls.Rows.Add("Friday")
    ls.Rows.Add("Saterday")
    cbtn.DataSource = ls
    cbtn.DisplayMember = "Day"
    DoctorDataView.Columns.Add(cbtn)
    cbtn.Width = DoctorDataView.Columns(DoctorDataView.Columns.Count - 1).Width / 2

我嘗試使用列表而不是數據表,甚至直接添加項目也沒有結果! 有什么幫助嗎? (可以使用C#或VB代碼)

DataGridView中沒有值的行未顯示任何數據,例如,在下面的示例中,第一行具有有效值,第三行也具有有效值。 第二行很好,但不顯示任何值,而最后一行包含無效數據,因此我們需要在這里使用斷言。

請注意,我使用DayNames提供特定於文化的工作日名稱,在該示例中 ,我通常使用自定義名稱空間。

任何方式都希望這會有所幫助。

Imports System.Globalization
Public Class Form1
    ''' <summary>
    ''' One column added in the designer
    ''' Form load I add a ComboBox with weekday names for data source
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        DataGridView1.Columns.Add(
            New DataGridViewComboBoxColumn With
            {
                .DataSource = CultureInfo.CurrentCulture.DateTimeFormat.DayNames,
                .DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing,
                .Name = "DayColumn",
                .HeaderText = "Week day",
                .SortMode = DataGridViewColumnSortMode.NotSortable
            }
        )

        DataGridView1.Rows.Add(New Object() {"AAA", "Friday"})
        DataGridView1.Rows.Add(New Object() {"BBB"})
        DataGridView1.Rows.Add(New Object() {"CCC", "Monday"})
        DataGridView1.Rows.Add(New Object() {"DDD", "XYZ"})
    End Sub

    Private Sub DataGridView1_DataError(
        sender As Object,
        e As DataGridViewDataErrorEventArgs) Handles DataGridView1.DataError

        If e.Exception.Message = "DataGridViewComboBoxCell value is not valid." Then
            Console.WriteLine("Not valid week name [{0}]", DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value)
            e.Cancel = True
        End If

    End Sub
End Class

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM