我试图在数据网格中使用组合框,一切正常。但是在运行时,组合框似乎不包含任何数据,这是我的代码:
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代码没问题)
答案 0 :(得分:0)
没有显示DataGridView中没有值的行的数据,例如在下面的示例中,第一行具有有效值,第三行也是如此。第二行很好但没有显示值,而最后一行有无效数据所以我们需要在这里使用断言。
注意我使用DayNames提供特定于文化的工作日名称,我通常在this code example中使用自定义命名空间。
任何方式都希望这会有所帮助。
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