“BindingNavigator”如何在删除前弹出确认框?

问题的缘起在于有一个学习数据操作的人询问我“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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/463016.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决虚拟机卡顿、卡死、待机后不动的情况(真实有效

本人环境: VM workstation 17.5 ubuntu 22.04 虚拟机配置:4核 4g issue: 出现开机卡死不动运行一段时间,可能半小时不到,就页面卡死不动经常需要关机重启才解决,可能没有解决 1.配置虚拟化引擎 这一步我称…

JVM内存溢出时快照转存HeapDump到文件

# Heap Dump 获取方式使用 JVM 参数获取 dump 文件进入Tomcat的bin目录,在catalina.sh文件里添加如下内容 >-XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPathc:\jakarta-tomcat\webapps 然后使用MAT分析工具,如jhat命令,eclipse的mat插件…

为什么auto_ptr智能指针不能作为STL标准容器的元素

上个星期的博客shared_ptr源码剖析里其实遗漏了一个问题:为什么auto_ptr不可以作为STL标准容器的元素,而shared_ptr可以? 我在网上看了好多篇讲shared_ptr的文章里讲到了这个问题,不过大多文章只是简单两笔带过。我研究了一下这个问题,发现…

【读书笔记】MSDN 上关于加密解密的一个例子

MSDN上的一个不错的例子: 那从内存清除密码的句子有个问题。 需要再看看这个问题到底是怎么回事,怎么解决 cannot convert from Sytem.InPtr to ref string 把下面这句 public static extern bool ZeroMemory(ref string Destination, int Length); 用这…

[luogu3380][bzoj3196]【模板】二逼平衡树【树套树】

题目地址 【洛谷传送门】 题目大意 区间查询k的排名,查找k排名的数,单点修改,区间前驱,区间后继。 感想 真的第一次写树套树,整个人都不对了。重构代码2次,发现样例都过不了,splay直接爆炸&…

Parquet格式描述

背景 2010年 google 发表了一篇论文《Dremel: Interactive Analysis of Web-Scale Datasets》,介绍了其 Dermel 系统是如何利用列式存储管理嵌套数据的,嵌套数据就是层次数据,如定义一个班级,班级由同学组成,同学的信…

Notepad++ 快捷键 大全

修改快捷键的话:设置----管理快捷键----就好比第一个快捷键新建吧--------鼠标双击,然后会弹出来对话框让你对具体想要设置的快捷键进行设置,所有的快捷键都是这么设置的,但是我就是不明白,你要设置的是哪个&#xff1…

Kevin专栏---如何制作试用版安装包

首先需要在http://activationservice.installshield.com/doLogin.do注册一个试用账号。注册完成后系统会自动发送一个15天的试用账号和密码。 在图标Trialware Files上点击鼠标右键,创建一个试用配置项(见下图)。 首先选择试用文件&#xff0…

ldd命令解析

在linux中,经常会碰到查看可执行文件需要依赖哪些动态链接库,这时ldd命令就可以排上用场了 由于某种原因,屏蔽了一些内容,结果如下: 可以根据结果查找对应的动态链接库

UDP和TCP协议包大小的计算-转

UDP和TCP协议包大小的计算 UDP一次发送数据包的大小,TCP一次发送数据包的大小。MTU最大传输单元,这个最大传输单元实际上和链路层协议有着密切的关系,EthernetII帧的结构DMACSMACTypeDataCRC由于以太网传输电气方面的限制,每个以太…

洛谷 - P1361 - 小M的作物 - 最小割 - 最大权闭合子图

第一次做最小割,不是很理解。 https://www.luogu.org/problemnew/show/P1361 要把东西分进两类里,好像可以应用最小割的模板,其中一类A作为源点,另一类B作为汇点,价值就是边的容量。 然后最小割一定会割断每个中间结点…

LVS

1、安装lvs 在分发器上在172.16.10.1上执行,事先应该配置好你的yum源,保证能够读取介质中的Cluster目录!#yum install ipvsadm编写,分发规则(注意,清空之前的防火墙iptable -F ; iptable -t nat…

linux Swap交换分区概念

Swap交换分区概念 什么是Linux swap space呢?我们先来看看下面两段关于Linux swap space的英文介绍资料: Linux divides its physical RAM (random access memory) into chucks of memory called pages. Swapping is the process whereby a page of memory is copie…

ThinkPHP 数据库操作(七) : 视图查询、子查询、原生查询

视图查询 视图查询可以实现不依赖数据库视图的多表查询,并不需要数据库支持视图,例如: Db::view(User,id,name)->view(Profile,truename,phone,email,Profile.user_idUser.id)->view(Score,score,Score.user_idProfile.id)->where(…

C++中的结构体函数

代码 #include "stdafx.h"structTest{ intnum; Test() { printf("11111111"); } Test(inti) { this->numi; } voidfun() { printf("fun"); }};voidmain( void){ Test a(1); …

Linux 查看进程的命令

1、ps ps -x : 只显示当前用户下的所有进程信息 ps -aux : 所有用户下的进程信息 2、top 显示动态的进程信息,5s刷新一次; 3、htop 需要自己安装htop命令,比较牛,个人也只是简单使用过,比top命令快,可…

关于安卓手机在微信浏览器中无法调起相机的原因

最近功在做公司的一个项目,遇到安卓手机在微信浏览器中更换头像无法调起相机的问题,特来此记录一下。 1.微信没有相机权限,开启就行了。 2.〈input type“file” accept“image/*”/〉。图库和相机都能调起。 3.部分冷门手机因系统原因不开放…

使用Microsoft Media Service实现网络影音多媒体应用系列第三篇---技术要点

技术要点解说: l 对Media Service的引用 Imports Microsoft.WindowsMediaServices.Interop Imports System.Runtime.InteropServices 引入以上两个命名空间以后,就可以看到WMSServer这个类,它就是指向Media Service的类。Activator.CreateIn…

SEO新手入门笔记

2019独角兽企业重金招聘Python工程师标准>>> 上个月公司让我给产品网站做SEO,第一次做这种事情,从中学到一些新东西,在这里做一个总结。 什么是SEO SEO是“搜索引擎优化”的简称,目的是提升网站在搜索引擎结果中的排名…

学习进度(4)

记录时间: 第五周 所花时间(包括上课) 10h 代码量(行) 200行 博客量(篇) 0篇 了解到的知识点 深入学习数据库语句 转载于:https://www.cnblogs.com/quxiangjia/p/10676086.html