如何在VB.NET中将TextEdit的值添加至DevExpress XtraGridView?
VB.NET中DevExpress XtraGridView从TextEdit取值加载的示例代码
你的代码里GridView.Columns.View是错误的引用方式,XtraGridView的单元格操作依赖数据源驱动,以下是两种常用的正确实现方式:
方式一:绑定DataTable数据源(推荐)
这种方式符合DevExpress控件的设计规范,数据操作更稳定。
首先在窗体加载时初始化数据源并绑定:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load ' 创建并配置DataTable Dim dataTable As New DataTable() dataTable.Columns.Add("Date", GetType(Date)) dataTable.Columns.Add("Remark", GetType(String)) ' 示例额外列 ' 将DataTable绑定到GridControl GridControl1.DataSource = dataTable End Sub
点击按钮时从TextEdit取值并添加到数据源:
Private Sub AddtoTableSimpleButton_Click(sender As Object, e As EventArgs) Handles AddtoTableSimpleButton.Click ' 获取绑定的DataTable Dim dataTable As DataTable = DirectCast(GridControl1.DataSource, DataTable) ' 验证日期输入有效性 Dim inputDate As Date If Not Date.TryParse(DateTextEdit.Text, inputDate) Then MessageBox.Show("请输入有效的日期格式") Return End If ' 创建新行并赋值 Dim newRow As DataRow = dataTable.NewRow() newRow("Date") = inputDate newRow("Remark") = RemarkTextEdit.Text ' 从另一个TextEdit取值示例 dataTable.Rows.Add(newRow) ' 刷新GridView(若自动刷新未开启) GridView1.RefreshData() End Sub
方式二:直接操作GridView行(不推荐,仅适用于无绑定数据源场景)
如果未绑定数据源,可直接添加行并赋值,但数据不会自动持久化:
Private Sub AddtoTableSimpleButton_Click(sender As Object, e As EventArgs) Handles AddtoTableSimpleButton.Click ' 添加新行并获取行句柄 Dim rowHandle As Integer = GridView1.AddNewRow() ' 验证输入 Dim inputDate As Date If Not Date.TryParse(DateTextEdit.Text, inputDate) Then MessageBox.Show("请输入有效的日期格式") GridView1.CancelUpdateCurrentRow() Return End If ' 为新行单元格赋值 GridView1.SetRowCellValue(rowHandle, "Date", inputDate) GridView1.SetRowCellValue(rowHandle, "Remark", RemarkTextEdit.Text) ' 提交行更新 GridView1.UpdateCurrentRow() End Sub
注意事项
- 确保GridView的列
FieldName与数据源列名(或手动设置的列标识)完全一致 - 优先使用数据源绑定方式,能避免控件状态异常
- 原代码错误在于错误引用了
GridView.Columns.View,应直接调用GridView实例的方法
内容的提问来源于stack exchange,提问作者DeveloperGuy
相关产品推荐
相关产品推荐

