社区
VB基础类
帖子详情
如何在VB中实现Undo、Redo功能???
bamboo
2000-04-23 05:47:00
有什么稍为简便的办法,在VB中实现Undo、Redo功能???
...全文
238
5
打赏
收藏
如何在VB中实现Undo、Redo功能???
有什么稍为简便的办法,在VB中实现Undo、Redo功能???
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Snymph
2000-04-29
打赏
举报
回复
和我联系,会给你满意的答复!
强力胶
snymph_qiy@263.net
zjml
2000-04-27
打赏
举报
回复
简单,如果是在编辑框中使用windows的消息,WM_UNDO,和WM_REDO
008
2000-04-26
打赏
举报
回复
monday说的有道理。不过你到底要做什么?
monday
2000-04-25
打赏
举报
回复
不管你undo什么,我认为先给操作步骤定义一个编号,设定一数组什么的保存每一个操作的编号,对这个数组进行管理就可实现undo, redo的功能。
Un1
2000-04-24
打赏
举报
回复
你要做什么的Undo, Redo?
Grid++Report报表控件4.5.0.2
Grid++Report 报表控件适用于
VB
.NET、C#、
VB
、VC、Delphi、C++Builder、Foxpro(VFP)、易语言等一切支持 COM 的开发工具。除了提供报表的统计分析、打印、打印预览、数据导出等
功能
,还提供独有的报表查询显示
功能
,让报表查询显示、打印、打印预览及数据导出等
功能
集成一体化
实现
。轻松
实现
通用报表、表格报表、动态报表、多层表头、票据与发票套打、交叉表、表
中
表及各种特殊报表等。提供详尽帮助文档与各种编程平台下的丰富例子,安装
中
包括可直接运行例子程序,安装后即刻体验此报表工具。包括简体
中
文版、繁体
中
文版与英文版。经过数年的发展,已经被国内多家有影响力的通用软件厂商采用,其用户遍布各行各业,已经成为用户受众面最广的国产报表开发工具。Grid++Report 报表组件具有如下特点:1、适用范围广:
VB
.NET、C#、
VB
、VC、Delphi、C++Builder、VFP、易语言等一切支持 COM 的开发工具。2、
功能
强大:
实现
普通格式报表、表格报表、多层表头、票据套打、交叉表等各种报表非常简便;报表完全可编程定义,非常适合开发通用软件
中
的动态报表。3、独有的报表查询显示
功能
:除了提供报表的打印、打印预览、数据导出等
功能
,还提供独有的报表查询显示
功能
,既提供报表查询与输出的集成一次性
实现
,又能保证数据的一致性与完整性。4、特有的分组单元格合并
功能
,轻松
实现
常见的
中
国式报表分组在列
中
展现并垂直居
中
。5、提供图表
功能
,在报表
中
直接
实现
图表
功能
。包括:饼图、叠加饼图、柱状图,连线图、散列点图等。6、报表数据导出格式丰富,格式包括:Excel、PDF、图像、HTML、文本,CSV 等。7、提供脚本编程
功能
,直接在报表模板
中
自定义报表行为,采用通用的
VB
Script 与 JScript 脚本引擎。8、支持参数化报表查询SQL语句,轻松
实现
动态过滤条件筛选报表数据。9、报表查询显示时提供报表内容文字查找
功能
。10、全
中
文界面,针对
中
国报表进行了很多专门
实现
,如:报表表格线、财务金额线、大写金额、发票打印圆圈
中
画叉图标、负数红字显示、多层表头等。很多在国外报表控件
中
很难
实现
的
功能
在本报表控件
中
可以轻易
实现
。11、组件提供丰富交互事件,轻松
实现
报表穿透(透视)查询和报表交互。12、重新发布简单:只需分发两个 DLL 文件。13、易学易用:完全可视化设计,完善的复制/剪切/粘贴(Copy/Cut/Paste)和恢复重做(
Undo
/
Red
o)
功能
,专业的拖放操作与即时编辑
功能
。14、编写了完整详尽的帮助文档。提供了丰富例程,包括
VB
.NET、C#、
VB
、VC、Delphi、C++Builder、VFP、
中
文编程易语言。15、为 Delphi、C++Builder 编写专门的包装类,象使用 VCL 控件一样使用 Grid++Report。16、支持所有常规条形码,打印条形码精度高易读取。
ArcEngineBook
ArcGIS Engine开发-自定义图层类型 3 ArcGIS Engine开发-取得ArcMap文档缩略图 3 ArcSDE
中
直接取得图层几何类型 4 ArcGIS Server常见问题之一 5 IFeatureLayer.DataSourceType Property [C#] 11 IQueryFilter接口
中
的SubFileds属性的使用 12 用程序
实现
从带高程的点数据到等高线的转换 13 空间查询的
实现
14 创建带Z值的Feature 15 在AO或者ENGINE
中
为SHAPEFILE添加SPATIAL INDEX 19 把一个图层ILayer数据COPY到三维Scenecontrol控件
中
(进行相关操作) 20
vb
+ arcgis engine 用raster生成等值线源码 22 关于IIdentify定义时只能找到面而不能找到点和线的问题 31 使用ArcGIS Engine来
实现
地图的点击查询并闪烁 32 空间查询的
实现
34 如何在同一图层
中
做缓冲选择 35 怎么样使用Engine来保存Mxd文件(几种情况)? 36 在ArcGIS Engine开发时如何改变标注字段 37 对shape文件添加字段 38 在ArcGisEngine 开发
中
如何在Toolbar控件上添加Combobox等其他控件 40 自相交对象的处理 41 在图
中
加入采集点 42 创建拓扑类、投影等等。 43 如何解决shapefile和coverage出现无法导入SDE数据库现象? 44 怎么显示布局控件的标尺 45 把shapefile polygons转为polylines 45 为什么不能编辑raster属性表或添加字段? 46 使用ArcGIS将GTOPO30 DEM数据转换到栅格数据 47 旋转地图 47 给geodatabase或shapefile定义一个投影 49 ArcGIS Engine
中
Undo
、
Red
o命令的使用 50 创建带Z值的Feature 50 在Ao
中
如何通过查询获得ITable 53 关于多个实体联合(union)的使用 54 在Ao
中
如何通过查询获得ITable 55 在Visual Basic
中
实现
ICommand接口 56 使用ArcObjects程序按照顶点来分割一条线 58 使用AO加载Raster Catalog 61 把不同层的几次的选择结果加到一个选择集
中
61 如何为ArcObjects扩展出"GroupRenderer"的效果来? 62 在AO或者ENGINE
中
为SHAPEFILE添加SPATIAL INDEX 68 如何ArcObject的环境
中
用程序
实现
3D环境
中
的查询
功能
69 截取任意范围地图区域 71 使用AO新增记录的3种方法 74 如何在ArcEngine环境
中
的SceneControl
中
实现
查询
功能
75 删除FeatureClass
中
满足一定条件的Feature问题及解决办法! 77 创建孤立的要素类和数据集
中
的要素类 78 SUM Color of vertex symbols in edit 80 要素动态跟踪的算法 83 同时闪烁满足条件的记录n次 86 旋转地图 89 转载-AO代码〔Display) 94 在arcEngine
中
标注字段属性数据 99 IfeatureSelection:SelectFeatures方法介绍 100 AO基本函数集合(很多函数
功能
) 103 AO画一个多边形 110 AO画带节点的线 111 AO计算Polygon的面积 112 AO缓冲区查询 113 AO画一个圆 114 AO查询被选
中
的实体 116 AO绘制带节点橡皮筋线条 117 AO绘制橡皮筋多边形 123 AO绘制缓冲区 126
vb
+ao鹰眼图代码 127 如何利用ao编辑shape文件的某个属性的属性值 129 MO作为B/S客户端控件的开发 130 MO作为B/S服务器端的开发 133 两点间画线 135 创建Personal Geodatabase 136 ArcObject学习的重要工具--Object Model Diagrams 137 ArcObject学习的重要工具--Object Model Diagrams (二) 139 AO开发感想 141 AO
中
的组件库(1) 143
赵强老师:Oracle数据库从10g到11g(13)
undo
数据与数据库审计
从零开始学习Oracle数据库,从10g讲到11g;让学员读整个Oracle数据库有个全面清除的认识和学习。
VB
制作RichTextBox的撤销和重做
功能
Visual Basic
中
的RichTextBox关于撤销和重做
功能
的演示,
Undo
和
Red
o!
VB
制作个人记事本
----------------------- 'False_
VB
教程:
VB
制作带撤销
功能
的记事本 QQ:5333784 '应网友要求,今天给大家带来一个用
VB
做带有撤销
功能
的记事本 '
VB
写记事本网上已经有很多教程了 '但是却很少有撤销
功能
的 '今天我就给大家做一个 '我们开始吧 '编辑菜单 '好了, '下面我们添加一个模块 '代码我已经测试好了 '也会给大家打包的 '下面来写入代码 '好了,这些是记事本最基本的应用 '希望大家可以写出一个属于自己的更多
功能
的记事本 '今天的教程就到这里了 '我们下次见 '以下是代码: '----------------------------------华丽的分割线------------------------------------------------- Dim sFind As String'生命查找变量 Dim FileType, FiType As String '----------------------------------华丽的分割线------------------------------------------------- Public Property Get
Undo
Type() As EREC
Undo
TypeConstants
Undo
Type = SendMessageLong(rtfText.hwnd, EM_GET
UNDO
NAME, 0, 0) End Property Public Property Get
Red
oType() As EREC
Undo
TypeConstants
Red
oType = SendMessageLong(rtfText.hwnd, EM_GET
RED
ONAME, 0, 0) End Property Public Property Get CanPaste() As Boolean CanPaste = SendMessageLong(rtfText.hwnd, EM_CANPASTE, 0, 0) End Property Public Property Get CanCopy() As Boolean If rtfText.SelLength > 0 Then CanCopy = True End If End Property Public Property Get Can
Undo
() As Boolean Can
Undo
= SendMessageLong(rtfText.hwnd, EM_CAN
UNDO
, 0, 0) End Property Public Property Get Can
Red
o() As Boolean Can
Red
o = SendMessageLong(rtfText.hwnd, EM_CAN
RED
O, 0, 0) End Property '----------------------------------华丽的分割线------------------------------------------------- Private Sub Form_Load()'窗体加载时 Dim lStyle As Long lStyle = TM_RICHTEXT Or TM_MULTILEVEL
UNDO
Or TM_MULTICODEPAGE SendMessageLong rtfText.hwnd, EM_SETTEXTMODE, lStyle, 0 End Sub '----------------------------------华丽的分割线------------------------------------------------- Private Function Translate
Undo
Type(ByVal eType As EREC
Undo
TypeConstants) As String Select Case eType Case ercUID_UNKNOWN Translate
Undo
Type = "Last Action" Case ercUID_TYPING Translate
Undo
Type = "Typing" Case ercUID_PASTE Translate
Undo
Type = "Paste" Case ercUID_DRAGDROP Translate
Undo
Type = "Drag Drop" Case ercUID_DELETE Translate
Undo
Type = "Delete" Case ercUID_CUT Translate
Undo
Type = "Cut" End Select End Function '----------------------------------华丽的分割线------------------------------------------------- '----------------------------------多了个华丽的分割线------------------------------------------- '新建文件 rtfText.Text = "" '清空文本框 FileName = "未命名" Me.Caption = FileName '----------------------------------华丽的分割线------------------------------------------------- '打开文件 CommonDialog1.Filter = "文本文档(*.txt)|*.txt|RTF文档(*.rtf)|*.rtf|所有文件(*.*)|*.*" CommonDialog1.ShowOpen rtfText.Text = "" '清空文本框 FileName = CommonDialog1.FileName rtfText.LoadFile FileName Me.Caption = "个人专用记事本:" & FileName '----------------------------------华丽的分割线------------------------------------------------- '保存文件 Open App.Path & "\False_
VB
教程.txt" For Append As #1 Print #1, rtfText.Text Close #1 '----------------------------------华丽的分割线------------------------------------------------- '另保存文件 CommonDialog1.Filter = "文本文档(*.txt)|*.txt|RTF文档(*.rtf)|*.rtf|所有文件(*.*)|*.*" CommonDialog1.ShowSave FileType = CommonDialog1.FileTitle FiType = LCase(Right(FileType, 3)) FileName = CommonDialog1.FileName Select Case FiType Case "txt" rtfText.SaveFile FileName, rtfText Case "rtf" rtfText.SaveFile FileName, rtfRTF Case "*.*" rtfText.SaveFile FileName End Select Me.Caption = "个人专用记事本:" & FileName '----------------------------------华丽的分割线------------------------------------------------- '撤销 SendMessageLong rtfText.hwnd, EM_
UNDO
, 0, 0 End Sub '----------------------------------华丽的分割线------------------------------------------------- '重做 SendMessageLong rtfText.hwnd, EM_
RED
O, 0, 0 '----------------------------------华丽的分割线------------------------------------------------- '复制 SendMessageLong rtfText.hwnd, WM_COPY, 0, 0 '----------------------------------华丽的分割线------------------------------------------------- '粘贴 SendMessageLong rtfText.hwnd, WM_PASTE, 0, 0 '----------------------------------华丽的分割线------------------------------------------------- '清除 rtfText.SelText = Empty '----------------------------------华丽的分割线------------------------------------------------- '剪切 SendMessageLong rtfText.hwnd, WM_CUT, 0, 0 '----------------------------------华丽的分割线------------------------------------------------- '全选 rtfText.SelStart = 0 rtfText.SelLength = Len(rtfText.Text) '----------------------------------华丽的分割线------------------------------------------------- '时间日期 rtfText.Text = rtfText.Text & " " & Now '----------------------------------华丽的分割线------------------------------------------------- '查找 sFind = InputBox("请输入要查找的字、词:", "查找内容", sFind) rtfText.Find sFind '----------------------------------华丽的分割线------------------------------------------------- '继续查找 rtfText.SelStart = rtfText.SelStart + rtfText.SelLength + 1 rtfText.Find sFind, , Len(rtfText) '----------------------------------华丽的分割线------------------------------------------------- '关于 MsgBox "作者QQ:1302938783 QQ群:26891547 E-mail:false
vb
@163.com 欢迎喜欢
VB
的朋友加入我的QQ群,大家一起讨论,请那些所谓的什么什么黑客要盗什么什么QQ的人自重,这个群只是喜欢
VB
的朋友一起交流和讨论,了解吗?", 64, "关于" '----------------------------------华丽的分割线------------------------------------------------- '防止在切换输入法时字体自变 Private Sub rtfText_KeyUp(KeyCode As Integer, Shift As Integer) If KeyCode =
vb
KeySpace Then rtfText.SelFontName = CommonDialog1.FontName End If End Sub '----------------------------------华丽的分割线------------------------------------------------- '模块 Public Enum ERECViewModes ercDefault = 0 ercWordWrap = 1 ercWYSIWYG = 2 End Enum '//
Undo
Types Public Enum EREC
Undo
TypeConstants ercUID_UNKNOWN = 0 ercUID_TYPING = 1 ercUID_DELETE = 2 ercUID_DRAGDROP = 3 ercUID_CUT = 4 ercUID_PASTE = 5 End Enum '// Text Modes Public Enum TextMode TM_PLAINTEXT = 1 TM_RICHTEXT = 2 ' /* default behavior */ TM_SINGLELEVEL
UNDO
= 4 TM_MULTILEVEL
UNDO
= 8 ' /* default behavior */ TM_SINGLECODEPAGE = 16 TM_MULTICODEPAGE = 32 ' /* default behavior */ End Enum Public Const WM_COPY = &H301 Public Const WM_CUT = &H300 Public Const WM_PASTE = &H302 Public Const WM_USER = &H400 Public Const EM_SETTEXTMODE = (WM_USER + 89) Public Const EM_
UNDO
= &HC7 Public Const EM_
RED
O = (WM_USER + 84) Public Const EM_CANPASTE = (WM_USER + 50) Public Const EM_CAN
UNDO
= &HC6& Public Const EM_CAN
RED
O = (WM_USER + 85) Public Const EM_GET
UNDO
NAME = (WM_USER + 86) Public Const EM_GET
RED
ONAME = (WM_USER + 87) Public Declare Function SendMessageLong Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Any) As Long '----------------------------------结束华丽的分割线--------------------------------------------
VB基础类
7,763
社区成员
197,605
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章