信息发布软件,b2b软件,广告发布软件

 找回密码
 立即注册
搜索
查看: 3634|回复: 14
打印 上一主题 下一主题

[『VB.NET 图文教程』] 您有所不知道VB.NET可以拦截某种神秘的点击动作了

[复制链接]

1868

主题

1878

帖子

1万

积分

积分
10928
跳转到指定楼层
宣传软件楼主
发表于 2017-5-23 23:33:36 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

软件教程首图:

软件教程分类:VB.NET 图文教程 

软件图文教程视频教程分类:软件图文教程 

软件教程难易程度:软件中级教程 

软件教程发布日期:2017-05-23

软件教程关键字:您有所不知道VB.NET可以拦截某种神秘的点击动作了

① 本信息收集于网络,如有不对的地方欢迎联系我纠正!
② 本信息免费收录,不存在价格的问题!
③ 如果您的网站也想这样出现在这里,请您加好友情链接,我当天会审核通过!

④友情链接关键字:软件定制网站 网址:http://www.postbbs.com

软件教程详细描述
本帖最后由 群发软件 于 2017-5-23 23:34 编辑

 一、 简介

  首先,本文假定你已经熟悉VB.net和Visual Studio.NET Windows表单设计器。

  在开发定制Windows表单控件时,提供我们自己的下拉框类型编辑器来操作控件的属性常常是非常方便的。定制的类型编辑器不仅可以提供更为丰富的设计时刻体验,而且可能成为用户是否喜欢你的控件的决定因素。

  如果你决定创建你自己的下拉式类型编辑器,那么它应该遵循与内置的下拉框类型编辑器相类似的模式。让我们以Anchor属性为例。一种典型的操作该属性的设计时刻用户交互描述如下:

  · 用户选择属性格子中的Anchor属性并且点击属性格右边的下拉按钮。

  · 一种良好的图形控件是下拉框,它能够允许用户使用鼠标点击边缘或者使用箭头键来高亮某个边缘并使用空格键选择/取消选择它。

  · 用户可以通过按下ENTER键或点击下拉控件的外部来接收变化。为了取消这一变化,用户可以按下ESC键。

  下面,让我们来讨论具体的实现技术。

  二、 实现

  首先,让我们构建一个ResourceImageEditor类型编辑器,它允许从当前文件系统中选择一个图像文件(就象内置的ImageEditor类一样)或者从一个程序集的manifest文件中选择一个图像资源。而且,在用户体验方面,该ResourceImageEditor的行为应该类似于系统内置的类型编辑器。下面是对我们要求的概述:

  1. 当用户从属性格子中选择一个属性时,该格子就会显示出来—以一个下拉框UI形式显示可以编辑的属性。

  2. 当点击下拉按钮时,当前程序集中的所有图像资源将显示出来。

  3. 当用户选择一个图像资源项,相应的图像即可以从程序集中进行加载。

  4. 允许选择一个图像文件,并且在下拉列表框中的最后一项将标记为“Browse...”。当用户点按“Browse...”项,将显示经典的打开文件对话框,用户能够从中选择一个图像文件。

  5. 通过单击鼠标或使用箭头键高亮某项并按回车键实际选择它从而允许用户从该下拉列表框中选择一项。这个下拉选择可以通过按下ESC键取消。

  ResourceImageEditor是一个类型编辑器,因此它直接或间接地派生自System.Drawing.Design.UITypeEditor类。我决定从内置的System.Drawing.Design.ImageEditor类进行派生是因为它已经实现了图像文件选择功能。也就是说,ImageEditor.EditValue实现将显示一个文件打开对话框以允许用户从文件系统中选择一个图像文件。然后,从我的派生类中调用这一功能只需要简单地调用MyBase.EditValue即可。

  为了实现上面第一个要求(在属性格子中显示下拉箭头按钮),我必须重载GetEditStyle方法以从UITypeEditorEditStyle枚举中返回适当的常数:

  Public Overloads Overrides Function GetEditStyle( _

ByVal context As ITypeDescriptorContext) As UITypeEditorEditStyle

 Return UITypeEditorEditStyle.DropDown

End Function

  为了显示图像资源列表,我必须列举一个给定程序集中的所有资源并且仅在列表中显示图像资源。为了简化,我决定使用一种简单的约定:当一个资源名以一个有效图像文件扩展名(.bmp,.jpg,.gif...)结束时,

  我们就认为这是一种图像资源,并且把它包括到该下拉列表框中。而且,我使用图像资源名的集合来填充这个下拉ListBox控件,后面详预以详述。

  开始时,被枚举以查询图像资源的程序集就是包含ResourceImageEditor类的程序集。然而,我们可以通过把ResourceImageEditor.ResourceAssembly属性设置为任何有效的System.Reflection.Assembly参考来改变它。

  当用户从列表框中选择一个图像资源名时,该图像应该即可从给定的程序集中的manifest文件中加载。这是在LoadResourceImage方法内实现的:


  Private Function LoadResourceImage(ByVal resourceName As String) As Image

Debug.Assert(Not resourceName Is Nothing)

 Dim ImageStream As System.IO.Stream = Me.ResourceAssembly.GetManifestResourceStream(resourceName)

 Return System.Drawing.Bitmap.FromStream(ImageStream)

End Function

  下拉用户接口是通过在重载的EditValue方法内动态地创建和填充一个ListBox控件实现的。编辑器也处理由ListBox生成的Click和KeyDown事件,因为这是拦截ENTER和ESC键所必需的。下列伪码显示了在EditValue方法中的实现逻辑:

  Public Overloads Overrides Function EditValue(...)

'存储上下文信息以用于下拉ListBox事件处理器。

'创建并使用可用的图像资源名填充该ListBox。

'添加我们的特殊“Browse...”项。

'绑定ListBox事件。

'在一个下拉窗口中显示该ListBox。

End Function

  三、 几个关键问题与解案

  为了开发ResourceImageEditor,我创建了一个重载Image属性的MyPictureBox(派生自System.Windows.Forms.PictureBox),以便把ResourceImageEditor指定为该Image属性的类型编辑器。然后,我编译这个控件的代码。之后,就可以把该MyPictureBox控件放到一个

  表单上并且调用下拉框用户接口......

  鼠标接口工作得很好。然而,当我使用键盘选择一项然后按下回车键时,该下拉列表框消失,而且我的选定内容丢失了(也就是说,前一个选择图像并没有改变)。我很快发现,当按下回车键时,该ListBox并没有生成KeyDown事件。

  尽管ESC键也产生KeyDown事件,但这不是一个问题;因为该下拉列表框会被自动关闭,而且我不必处理当前选择项。

  很明显,在ListBox控件能够处理它们之前,这个属性格“屏蔽”了ENTER和ESC键。

  为了简化而且还要解决问题,我要使用ProcessDialogKey方法。在消息预处理期间(处理对话字符,例如TAB、RETURN、ESCAPE和箭头键)时,调用这个方法。这个方法是在System.Windows.Forms.Control类内声明的—它简单地把该调用代理给该控件的父级(如果有的话)。我已经子类化该ListBox控件,并且重载了ProcessDialogKey方法来拦截回车键,如下所示:

  Protected Overrides Function ProcessDialogKey(ByVal keyData As Keys) As Boolean

 If keyData = System.Windows.Forms.Keys.Return Then

  RaiseEvent EntERPressed(Me, EventArgs.Empty)

  Return True 'True意味着我们已经处理了相应的键

 Else

  Return MyBase.ProcessDialogKey(keyData)

 End If

End Function

  不是从ProcessDialogKey实现内部生成KeyDown事件,我决定使用一种更为直接的方式:EnterPressed事件。为了,我修改了ResourceImageEditor.EditValue的实现以处理这一事件(而不是KeyDown事件),而且一切都非常顺利。

  你可以使用这一技术来拦截任何Control派生的类

  (你使用它来实现你的类型编辑器中的下拉UI)中的ENTER键。

换一个方法:
1)把KeyPreview=True。
2)
Public Class Form1    '人为添加人工按钮    Dim WithEvents mb As New MyButton    ''' <summary>    ''' 自定义按钮    ''' </summary>    Public Class MyButton        Inherits Button         Protected Overrides Function ProcessCmdKey(ByRef msg As Message, keyData As Keys) As Boolean            Return keyData <> Keys.Enter        End Function    End Class     Public Sub New()         ' 此调用是设计器所必需的。        InitializeComponent()         '手动添加按钮        mb.Parent = Me        mb.Width = 100        mb.Height = 100        mb.Name = "myButton"        mb.Text = "我的按钮"    End Sub     Private Sub mb_Click(sender As Object, e As EventArgs)        MsgBox("")    End SubEnd Class

Click For donating:Free Rice For the poor
For spamming-sender issues, you can either report it at Microsoft Spamming Issue, or just find "Report Spam Here+Number" at Forum Issue;You can also find "Verify Your Account+Number" at "Forum Issue", where you can submit to be confirmed to paste links or images.
For more things to talk about? StackOverFlow is your choice.

如果你多个项目需要用到Button,可以选择类库,直接写入以下代码:
''' <summary>    ''' 自定义按钮    ''' </summary>    Public Class MyButton        Inherits Button         Protected Overrides Function ProcessCmdKey(ByRef msg As Message, keyData As Keys) As Boolean            Return keyData <> Keys.Enter        End Function    End Class
然后导出为DLL,这样就可以像其它控件一样直接把DLL拖拽到工具箱中就可以随意拖拽到WinForm上就可以使用啦!
另外有问题希望直接在此处讨论,不要发送冗余帖子,谢谢配合!


Click For donating:Free Rice For the poor
For spamming-sender issues, you can either report it at Microsoft Spamming Issue, or just find "Report Spam Here+Number" at Forum Issue;You can also find "Verify Your Account+Number" at "Forum Issue", where you can submit to be confirmed to paste links or images.
For more things to talk about? StackOverFlow is your choice.

unto中国智能制造网B2B网站自动信息群发脚本nextVB.NET表单自动实现提交 做群发软件必备技巧
回复

使用道具 举报

0

主题

623

帖子

612

积分

积分
612
信息发布软件沙发
发表于 2017-5-26 22:57:32 | 只看该作者
就按要求完成了!力荐!!

回复 支持 反对

使用道具 举报

0

主题

641

帖子

635

积分

积分
635
推广工具板凳
发表于 2017-5-29 10:13:09 | 只看该作者
及时做出评价,系统默认好评!

回复 支持 反对

使用道具 举报

0

主题

556

帖子

519

积分

积分
519
软件定制开发地板
发表于 2017-5-29 18:55:00 | 只看该作者
,风格很赞,系统很稳定。很好。

回复 支持 反对

使用道具 举报

0

主题

587

帖子

579

积分

积分
579
5#定制软件#
发表于 2017-5-29 22:34:44 | 只看该作者
论坛数据库真厉害,很快就搞定,修复云平台更厉害哦

回复 支持 反对

使用道具 举报

1

主题

661

帖子

641

积分

积分
641
6#定制软件#
发表于 2017-5-30 16:52:23 | 只看该作者
看帖回帖是美德!

回复 支持 反对

使用道具 举报

0

主题

586

帖子

582

积分

积分
582
7#定制软件#
发表于 2017-6-2 04:27:54 | 只看该作者
买家,有你这样的买家是我的荣幸,希望下次再光临本店哦!谢谢!东西很漂亮,卖家服务态度很好,下次还来。东西很满意速度很快有机会我还会再来的呵呵合作愉快哦!

回复 支持 反对

使用道具 举报

0

主题

985

帖子

988

积分

积分
988
8#定制软件#
发表于 2017-6-2 06:07:31 | 只看该作者
,看样子好不错给个好评,已经习惯了

回复 支持 反对

使用道具 举报

0

主题

614

帖子

596

积分

积分
596
9#定制软件#
发表于 2017-6-8 10:46:32 | 只看该作者
都满足不了我对店家的评价!!!非常满意模板真心的不错显示工整完美大方使用简单方便之前用的是淘宝基础版枯燥不堪用了这模板后看自己的铺面心情都不样呵呵!店家的服务也非常周到有问必答而且非常有耐心省时省事省心。

回复 支持 反对

使用道具 举报

0

主题

632

帖子

622

积分

积分
622
10#定制软件#
发表于 2017-6-10 15:15:16 | 只看该作者
学习了,谢谢分享、、、

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关导读
信息发布软件AIWROK软件安卓AIWROK汇集软件点击
AIWROK软件安卓AIWROK汇集软件点击
信息发布软件苹果系统点击方法综合示例
苹果系统点击方法综合示例
信息发布软件AIWROK苹果系统找图方法完整示例集合
AIWROK苹果系统找图方法完整示例集合
信息发布软件苹果系统找图方法完整示例集合
苹果系统找图方法完整示例集合
信息发布软件苹果IOS系统找字OCR方法例子
苹果IOS系统找字OCR方法例子
信息发布软件AIWORK软件数组高级示例
AIWORK软件数组高级示例
信息发布软件AIWROK软件运算符封装库示例
AIWROK软件运算符封装库示例
信息发布软件AIWROK软件语法运行小示例
AIWROK软件语法运行小示例
信息发布软件AIWROK软件JS循环小示例
AIWROK软件JS循环小示例
信息发布软件AIWROK软件H5网页被主脚本获取值用法
AIWROK软件H5网页被主脚本获取值用法
信息发布软件AIWROK软件创建可暂停恢复的多线程任务
AIWROK软件创建可暂停恢复的多线程任务
信息发布软件AIWROK软件类型转换方法例子
AIWROK软件类型转换方法例子
信息发布软件AIWROK软件H5脚本执行与进度显示
AIWROK软件H5脚本执行与进度显示 .
信息发布软件AIWROK软件根据时间段执行异步任务支持多线程并行处理
AIWROK软件根据时间段执行异步任务支持多线程并行处理
信息发布软件H5自动开关执行脚本功能演示
H5自动开关执行脚本功能演示
信息发布软件AIWROK软件H5单选脚本运行示例
AIWROK软件H5单选脚本运行示例
信息发布软件H5任务脚本选择与执行中心
H5任务脚本选择与执行中心
信息发布软件H5里CheckBox控件演示
H5里CheckBox控件演示
信息发布软件AIWROK软件正则用法实际例子
AIWROK软件正则用法实际例子
信息发布软件AIWROK软件权限管理器实现
AIWROK软件权限管理器实现
信息发布软件AIWORK软件节点方法无碍示例子
AIWORK软件节点方法无碍示例子
信息发布软件JSON.stringify 和 JSON.parse 完整示例
JSON.stringify 和 JSON.parse 完整示例
信息发布软件AIWROK软件展示JavaScript各种语句标识符的用法
AIWROK软件展示JavaScript各种语句标识符的用法
信息发布软件JS巧妙地组合使用各种条件语句
JS巧妙地组合使用各种条件语句
信息发布软件AIWROK手机数据库MySQL数据库截图片批量上传操作脚本
AIWROK手机数据库MySQL数据库截图片批量上传操作脚本
信息发布软件HID中文输入智能打字功能
HID中文输入智能打字功能
信息发布软件AIWROK软件对象工具函数库例子
AIWROK软件对象工具函数库例子
信息发布软件AIWROK软件H5交互演示黄色主题
AIWROK软件H5交互演示黄色主题
信息发布软件H5单按钮执行脚本示例
H5单按钮执行脚本示例
信息发布软件苹果H5界面完整调用脚本示例
苹果H5界面完整调用脚本示例
信息发布软件AIWROK软件平台设备信息全面检测工具例子
AIWROK软件平台设备信息全面检测工具例子
信息发布软件AIWROK创建和放大日志窗口并展示动态内容
AIWROK创建和放大日志窗口并展示动态内容
信息发布软件AIWROK软件device相关方法获取设备信息例子
AIWROK软件device相关方法获取设备信息例子[/backcolor]
信息发布软件数据库MySQL实时内容随机调用
数据库MySQL实时内容随机调用
信息发布软件AIWROK软件分享一个特效苹果H5页面
AIWROK软件分享一个特效苹果H5页面
信息发布软件数据库MYQ业务流程心跳程序启动
数据库MYQ业务流程心跳程序启动
信息发布软件数据库MySQL功能支持创建表插入中文数据查询删除功能例子
数据库MySQL功能支持创建表插入中文数据查询删除功能例子
信息发布软件AIWROK软件Zip 高级操作复杂示例
AIWROK软件Zip 高级操作复杂示例
信息发布软件AIWROK软件txt_文件读写方法小结
AIWROK软件txt_文件读写方法小结
信息发布软件AIWROK软件file文件操作方法小结
AIWROK软件file文件操作方法小结
信息发布软件AIWORK软件配置读写H5演示配套脚本
AIWORK软件配置读写H5演示配套脚本
信息发布软件AIWROK配置读写功能演示示例
AIWROK配置读写功能演示示例
信息发布软件AIWROK截图缓存工具
AIWROK截图缓存工具
信息发布软件AIWROK线程许可证工具
AIWROK线程许可证工具
信息发布软件整理了AIWROK环境下常用的Date对象和sleep对象方法
整理了AIWROK环境下常用的Date对象和sleep对象方法
信息发布软件FastUI界面普通用法
FastUI界面普通用法
信息发布软件FastUI界面类[window]方法小结
FastUI界面类[window]方法小结 方法 1:close(关闭指定窗口)方法 2:closeAll(关闭所有窗口)方法 3:loadUI(加载 UI 界面)方法 4:onClose(监听窗口关闭事件)方法 5:onLoad(监听窗口加载事件)方法 6:setFull(设置窗口全屏)方法 7:setHeight(设置窗口高度)方法 8:setHidden(隐藏窗口)方法 9:setLeft(设置窗口 X 轴坐标)方法 10:setTop(设置窗口 Y 轴坐标)方法 11:setVisable(显示隐藏的窗口)方
信息发布软件AIWROK软件按钮监听UI界面与事件监听功能演示
AIWROK软件按钮监听UI界面与事件监听功能演示.
信息发布软件AWIROK软件多选[uiCheckBox]方法小结
AWIROK软件多选方法小结 方法一:findByID 加载多选控件方法二:getAllChecked 获取所有选中项方法三:getAllSelect 获取所有选项方法四:getChecked 获取某个选项是否选中方法五:setChecked 设置某个选项是否选中方法六:setCheckeds 设置多个选项是否选中方法七:setHeight 设置高度
信息发布软件AIWROK日志演示开启日志显示 → 放大 → 关闭代码
AIWROK日志演示开启日志显示 → 放大 → 关闭代码
信息发布软件&#127983;AIWROK数组方法高级应用案例
🏯AIWROK数组方法高级应用案例
信息发布软件AIWROK软件日志悬浮窗简化版自动切换位置
AIWROK软件日志悬浮窗简化版自动切换位置
信息发布软件AIWROK软件String实例演示
AIWROK软件String实例演示
信息发布软件AIWROK软件S内置String类[String]方法小结
AIWROK软件S内置String类[String]方法小结 方法 1:charAt[/backcolor]方法 2:charCodeAt[/backcolor]方法 3:indexOf[/backcolor]方法 4:lastIndexOf[/backcolor]方法 5:length[/backcolor]方法 6:match[/backcolor]方法 7:replace[/backcolor]方法 8:replaceAll[/backcolor]方法 9:split[/backcolor]方法 10:startsWith[/backcolor]方法 11:substr[/backcolor]方法 12:substring[/backcolor]方法 13:trim[/backcol
信息发布软件AIWROK软件完整的WebSocket客户端示例
这段代码是一个完整的WebSocket客户端示例,用于连接到指定的WebSocket服务器并处理各种事件。具体来说,代码的作用如下: 定义服务器地址:首先定义了一个服务器的IP地址和端口号 var ip = "154.37.221.104:8886";。 创建WebSocket对象:尝试创建一个新的WebSocket对象 var ws = new WebSocket();。注意,这里的 new ws() 应该是 new WebSocket()。 添加事件监听器:代码中尝试为WebSocket对象添加事件监听器,但这里有一个错误。
信息发布软件AIWROK软件苹果系统中实现四种基本滑动操作
AIWROK软件苹果系统中实现四种基本滑动操作
信息发布软件hid的滑动没有百分比坐标滑动吗
hid的滑动没有百分比坐标滑动吗
信息发布软件单选控件[uiRadioButton]方法小结
单选控件方法小结 方法 1:加载单选控件[/backcolor]方法 2:获取选中项[/backcolor]方法 3:设置高度[/backcolor]方法 4:设置选中项[/backcolor]
信息发布软件AIWROK软件无障碍触摸操作示例:点击、左右滑动、上下滑动实例
AIWROK软件无障碍触摸操作示例:点击、左右滑动、上下滑动实例
信息发布软件AIWROK软件安卓随机工具应用函数生成
AIWROK软件安卓随机工具应用函数生成
信息发布软件用在AIWORK软件代码中的实用符号分类整理2
用在AIWORK软件代码中的实用符号分类整理2 软件IDE用Emoji符号分类整理(含用途说明)一、表情与情感1. 微笑 [*]😀 笑脸(基础开心反馈,用于操作成功后的友好提示) [*]😃 笑脸大眼睛(强化开心情绪,用于重要任务完成后的积极反馈) [*]😄 笑脸和微笑的眼睛(温和友好的状态,用于日常交互中的正向回应) [*]😁 带着微笑的眼睛(轻松愉悦的反馈,用于轻度成功或趣味操作) [*]
信息发布软件AIWROK软件图像二值化的各种方法和应用场景
AIWROK软件图像二值化的各种方法和应用场景
信息发布软件AIWROK软件找图区分页面变化和卡死状态
AIWROK软件找图区分页面变化和卡死状态
信息发布软件AIWROK苹果系统Map 数据管理[map]小结
AIWROK苹果系统Map 数据管理[map]小结 方法一:add(添加键值对)[/backcolor]方法二:delete(删除指定键值对)[/backcolor]方法三:clear(清空所有键值对)[/backcolor]方法四:get(根据键获取值)[/backcolor]方法五:getAllValue(获取所有值)[/backcolor]方法六:toString(转换为字符串)[/backcolor]完整示例:
信息发布软件AIWROK软件用图找图示例templateMat方法
AIWROK软件用图找图示例templateMat方法

QQ|( 京ICP备09078825号 )

本网站信息发布软件,是可以发布论坛,发送信息到各大博客,各大b2b软件自动发布,好不夸张的说:只要手工能发在电脑打开IE能发的网站,用这个宣传软件就可以仿制动作,进行推送发到您想发送的B2B网站或是信息发布平台上,不管是后台,还是前台,都可以进行最方便的广告发布,这个广告发布软件,可以按月购买,还可以试用软件,对网站的验证码也可以完全自动对信息发布,让客户自动找上门,使企业轻松实现b2b发布,这个信息发布软件,均是本站原创正版开发,拥有正版的血统,想要新功能,欢迎提意见给我,一好的分类信息群发软件在手,舍我其谁。QQ896757558

GMT+8, 2026-2-4 04:27 , Processed in 0.420530 second(s), 55 queries .

宣传软件--信息发布软件--b2b软件广告发布软件

快速回复 返回顶部 返回列表