我试图将BindingNavigator绑定到BindingSource。它工作得很好,但问题是黄色加号图标被禁用。如何启用它?
我手动使用数据集,tableadapters和bindingsource创建了代码,但是当我在bindingnavigator上绑定它时,它显示了记录,但它没有启用"删除"和"添加项目"。
我做错了什么?
评论代码:
Dim connstr As String = "Data Source=" + Application.StartupPath + "\Prueba.sdf"
Dim conn As New SqlCeConnection(connstr)
Dim cmd As New SqlCeCommand("SELECT * FROM datos", conn)
Dim inscmd As New SqlCeCommand("INSERT INTO datos VALUES (@nombre,@apellido,@id)", conn)
dt = New SqlCeDataAdapter(cmd)
dt.Fill(DataSet1, "datos")
dt.InsertCommand = inscmd
BindingSource1.DataSource = DataSet1
DataGridView1.DataSource = BindingSource1
DataGridView1.DataMember = "datos"
DataGridView1.Columns("id").Visible = False
答案 0 :(得分:1)
由于您没有提供任何代码,因此您很难尝试解决问题。
这是一个有效的例子。获取新表单,在其上放置TextBox
和BindingNavigator
控件。
添加此代码:
Public Class Form1
Private bs As New BindingSource
Private ds As New DataSet
Private dt As New DataTable
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
dt.TableName = "English"
dt.Columns.Add("Words")
dt.Rows.Add("Hello")
dt.Rows.Add("Good-Bye")
ds.Tables.Add(dt)
bs.DataSource = ds
bs.DataMember = "English"
TextBox1.DataBindings.Add("Text", bs, "Words")
BindingNavigator1.BindingSource = bs
End Sub
End Class
TextBox
中应包含“Hello”。 BindingNavigator
上应该有“1 of 2”,加上“添加”和“删除”按钮应启用并正常工作。
如果这无法解决问题,则必须发布一些代码以帮助我们重现问题。
答案 1 :(得分:0)
为了好玩,我在表单上添加了第二个文本框,在表格中添加了第二列,并为两个记录填充了两个字段。
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
dt.TableName = "English"
dt.Columns.Add("Words")
dt.Columns.Add("Spanish")
dt.Rows.Add("Hello", "Hola")
dt.Rows.Add("Good-Bye", "Adios")
ds.Tables.Add(dt)
bs.DataSource = ds
bs.DataMember = "English"
TextBox1.DataBindings.Add("Text", bs, "Words")
TextBox2.DataBindings.Add("Text", bs, "Spanish")
BindingNavigator1.BindingSource = bs
End Sub