做网站运营难吗,杭州搜索推广公司,网站建设和优化排名,网站开发研发设计问题的缘起在于有一个学习数据操作的人询问我“BindingNavigator”如何点击“删除”前进行确认。我一开始模拟创建了一个表#xff0c;然后通过设计器的方式生成了这四类控件#xff0c;随后拖拽一个Navigator到WinForm上#xff0c;双击红色叉叉部分#xff0c;写入一个Me…问题的缘起在于有一个学习数据操作的人询问我“BindingNavigator”如何点击“删除”前进行确认。我一开始模拟创建了一个表然后通过设计器的方式生成了这四类控件随后拖拽一个Navigator到WinForm上双击红色叉叉部分写入一个MessageBox判断用户究竟是否需要取消——显然不起作用。 于是反推引发该Delete事件的方法必然是先调用了SQL相关语句删除了当前记录然后引发了Delete事件于是兴冲冲地查看BindingNavigator关于Delete的方法希望可以重写—— [C#] private void OnDelete(object sender, EventArgs e)
{if (this.Validate() (this.bindingSource ! null)){this.bindingSource.RemoveCurrent();this.RefreshItemsInternal();}
} [VB.NET] Private Sub OnDelete(ByVal sender As Object, ByVal e As EventArgs)If (Me.Validate AndAlso (Not Me.bindingSource Is Nothing)) ThenMe.bindingSource.RemoveCurrentMe.RefreshItemsInternalEnd If
End Sub Fuck请抱歉我说粗话了——这个方法竟然是私有的 怎么办也没有任何Deleting进行时的事件啥的……欲哭无泪的我无意发现这样一个属性DeleteItem——这个控件如果设置为“空”Null那么完全就可以让你自己来编程啦于是 1先设置DeleteItem为空不让它调用自动生成的删除代码因为我要自己编写逻辑滴 2代码如下这里MyData啥的全都是生成的强类型数据集 [C#] private void bindingNavigatorDeleteItem_Click(object sender, EventArgs e){if (MessageBox.Show(确认删除吗, 删除前确认, MessageBoxButtons.OKCancel) DialogResult.OK){myDbTestDataSet.myTable.Rows[bindingNavigator1.BindingSource.Position].Delete();}} [VB.NET] Private Sub bindingNavigatorDeleteItem_Click(sender As Object, e As EventArgs)If MessageBox.Show(确认删除吗, 删除前确认, MessageBoxButtons.OKCancel) DialogResult.OK ThenmyDbTestDataSet.myTable.Rows(bindingNavigator1.BindingSource.Position).Delete()End If
End Sub 一般地BindingNavigator上面全部的按钮——绑定到数据源的时候假设生成了CRUD等方法都有两大类运行模式1自动就是默认设置无需做任何操作。2手动像我设置一样——把XXXItem设置为“空”Null然后编码进行。此时的Navigator好比只是一个带有数据源的一个普通工具条你完全可以自定义。转载于:https://www.cnblogs.com/ServiceboyNew/archive/2012/12/01/2797429.html