TreeView节点删除和恢复

BoJerry 2012-10-30 10:55:18
我要实现以下功能“有TreeView1,TreeView2 当我双击TreeView1中的节点时,将选中的节点在TreeView1中移除,并且添加到TreeView2中,然后再TreeView2中点击恢复的时候将节点恢复到TreeView1中,并且位置不变”
...全文
85 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2012-10-30
  • 打赏
  • 举报
回复
移到treeview2时,保存node.parentnode
还原时parentnode添加子节点
unit TreeViewFunctions; interface uses Windows, Messages, SysUtils, Variants, Classes, ComCtrls, Controls, Forms, FileCtrl, StrUtils, Masks, Vcl.OleCtrls, SHDocVw, IOUtils; procedure SaveTreeViewExplandState(TreeView: TTreeView; FileName: string); procedure LoadTreeViewExplandState(TreeView: TTreeView; FileName: string); function ExtractNewFolderPath(FileName: string; NewText: string): string; procedure HideHideHorizontalScrollBar(TreeView: TTreeView); function IsEmptyDir(sDir: String): Boolean; function AttachMentsExists(FileName: String): Boolean; procedure SetIcons(TreeView: TTreeView; list: TStringList); procedure EnumText(s: string; aItem: TTreeNode); function AttachmentsFolder(FileName: String): string; function ExtractNodeFullPath(TreeView: TTreeView): string; function Get_node_path(node: TTreeNode): string; function ExtractTreeViewFileName(RootPath: string; TreeView: TTreeView): string; /// /// Node.Selected := true; Node.Focused := true; /// /// /// Node.Selected := true; Node.Focused := true; /// /// /// Node.Selected := true; Node.Focused := true; /// function OpenFile(Path: string; RichEdit: TRichEdit; TreeView: TTreeView) : Boolean; overload; function OpenFile(Path: string; Webbrowser: TWebbrowser; TreeView: TTreeView) : Boolean; overload; procedure GetDirectories(Tree: TTreeView; Directory: string; Item: TTreeNode; IncludeFiles: Boolean); procedure DirToTreeView(Tree: TTreeView; Directory: string; Root: TTreeNode; IncludeFiles: Boolean; FileExt: string); procedure QSetPerpoty(TreeView: TTreeView); function ItemExist(Text: string; TreeView: TTreeView): Boolean; function RemoveDirs(folderPath: string): Boolean; function __RenameFile(OldName: string; Title: string): Boolean; function RenameFolder(filePath: string; Title: string): Boolean; var list: TStringList; implementation { // "D:\C++Builder学习大全中文版\index.htm" // "D:\C++Builder学习大全中文版\" // "index_files" // "D:\C++Builder学习大全中文版\index_files" var s, s1, s2: string; begin s := 'D:\C++Builder学习大全中文版\index.htm'; s1:=ExtractNewFolderPath(s,'_files'); s2 := ExtractNewFolderPath(s, '_AttachMents'); Memo1.lines.Add(s); Memo1.Lines.Add(s1); Memo1.lines.Add(s2); end; } function ExtractNewFolderPath(FileName: string; NewText: string): string; var _filesFolder: string; // "D:\C++Builder学习大全中文版\" _filesFolderName: string; // "index_files" _filesFolderPath: String; begin _filesFolder := ExtractFilePath(FileName); _filesFolderName := ChangeFileExt(ExtractFileName(FileName), '') + NewText; _filesFolderPath := _filesFolder + _filesFolderName; Result := _filesFolderPath; end; { SaveTreeViewExplandState(TreeView1,'TreeView.txt'); } procedure SaveTreeViewExplandState(TreeView: TTreeView; FileName: string); var list: TStringList; i: Integer; begin list := TStringList.Create; With TreeView do begin for i := 0 to Items.Count - 1 do begin if Items.Item[i].Expanded then list.Add(IntToStr(i)); end; list.Add(IntToStr(Selected.AbsoluteIndex)); end; list.SaveToFile(FileName); list.free; end; { LoadTreeViewExplandState(TreeView1, 'abc.txt'); } procedure LoadTreeViewExplandState(TreeView: TTreeView; FileName: string); var list: TStringList; i: Integer; node: TTreeNode; begin list := TStringList.Create; with list do begin list.LoadFromFile(FileName); for i := 0 to Count - 2 do // 最后一行放的是最后选中的那个节点索引 begin TreeView.Items[StrToInt(list[i])].Expand(False); end; node := TreeView.Items[StrToInt(list[Count - 1])]; TreeView.Select(TreeView.Items[StrToInt(list[Count - 1])], []); // node.Selected := True; // node.Focused := True; TreeView.SetFocus; TreeView.Focused; free; end; end; { FUNCTION ulong ShowScrollBar(ulong hwnd,ulong wBar,ulong bShow) LIBRARY "user32.dll" constant long SB_HORZ = 0 constant long SB_VERT = 1 constant long SB_BOTH = 3 } procedure HideHideHorizontalScrollBar(TreeView: TTreeView); begin // no responed NEW FORM TEST // ShowScrollBar(TreeView.Handle,SB_HORZ,False); end; // procedure // begin // { 当拖拽的高度不够的时候自动滚动滚动条 } // with TreeView1 do // begin // if (Y < 15) then // SendMessage(Handle, WM_VSCROLL, SB_LINEUP, 0) // else if (Height - Y < 15) then // SendMessage(Handle, WM_VSCROLL, SB_LINEDOWN, 0); // end; // end; { 返回 附件文件夹 "D:\C++Builder学习大全中文版\新建文本文档.htm" D:\C++Builder学习大全中文版\新建文本文档_Attachments } function AttachmentsFolder(FileName: String): string; begin Result := ExtractFilePath(FileName) + ChangeFileExt(ExtractFileName(FileName), '') + '_Attachments'; end; function AttachMentsExists(FileName: String): Boolean; var f: string; begin f := ExtractFilePath(FileName) + ChangeFileExt(ExtractFileName(FileName), '') + '_Attachments'; Result := DirectoryExists(f); end; procedure EnumText(s: string; aItem: TTreeNode); var node: TTreeNode; str: string; begin node := aItem; while node nil do begin if s = '' then str := node.Text else str := s + '\' + node.Text; list.Add(str); /// ////////////////////////// if node.HasChildren then EnumText(str, node.getFirstChild); node := node.getNextSibling; end; end; function IsEmptyDir(sDir: String): Boolean; var sr: TSearchRec; begin Result := True; if Copy(sDir, Length(sDir) - 1, 1) '\' then sDir := sDir + '\'; if FindFirst(sDir + '*.*', faAnyFile, sr) = 0 then repeat if (sr.Name '.') and (sr.Name '..') then begin Result := False; break; end; until FindNext(sr) 0; FindClose(sr); end; { 是文件 夹的设置为1 是文件 的设置为 2 } procedure SetIcons(TreeView: TTreeView; list: TStringList); var i: Integer; begin with TreeView do begin for i := 0 to Items.Count - 1 do begin if DirectoryExists(list.Strings[i]) then begin Items[i].ImageIndex := 0; Items[i].SelectedIndex := 0; Items[i].StateIndex := 0; end; if FileExists(list.Strings[i]) then begin Items[i].ImageIndex := 1; Items[i].SelectedIndex := 1; Items[i].StateIndex := 1; end; if (AttachMentsExists(list.Strings[i])) then if not IsEmptyDir(AttachmentsFolder(list.Strings[i])) then begin // Form1.Memo1.LINES.Add( AttachmentsFolder(list.Strings[i])); Items[i].ImageIndex := 2; Items[i].SelectedIndex := 2; Items[i].StateIndex := 2; end; end; end; end; procedure QSetPerpoty(TreeView: TTreeView); begin with TreeView do begin // Align := alBottom; // Anchors := [akLeft, akTop, akBottom, akRight]; Items.Clear; // BorderStyle := bsNone; Cursor := crHandPoint; ReadOnly := True; ShowHint := True; RowSelect := True; ShowButtons := True; ShowRoot := True; ShowLines := False; SortType := stText; HideSelection := False; RightClickSelect := True; DragMode := dmAutomatic; // Color := RGB(238, 243, 246); end; end; { 实际重命名 C:\windows\test.txt C:\windows\csadsajas.txt MoveFile(PChar('C:\1.txt'),PChar('C:\ABC.txt')); if not __RenameFile('C:\tree.txt','TreeView') then Application.MessageBox('重命名文件失败','重命名',MB_ICONERROR); } { 重命名文件 } function __RenameFile(OldName: string; Title: string): Boolean; var NewName: string; begin NewName := Format('%s%s%s', [ExtractFilePath(OldName), Title, ExtractFileExt(OldName)]); Result := MoveFile(PChar(OldName), PChar(NewName)); end; // 重命名文件夹 // RenameFolder('C:\1\','2'); // MoveFile('C:\1','C:\2'); // MoveFile('C:\1\','C:\2\'); function RenameFolder(filePath: string; Title: string): Boolean; var s, s1: string; begin // filePath:='C:\Windows\System32\'; // s = ExtractFileDir(filepath) = 'C:\Windows\System32' s := ExtractFileDir(filePath); // s1 = ExtractFileDir(s) = 'C:\Windows' // s1 ='C:\Windows' +'\'+ titles s1 := ExtractFileDir(s) + '\' + Title; Result := MoveFile(PChar(s), PChar(s1)); end; { IOUtils } function RemoveDirs(folderPath: string): Boolean; begin Result := False; if TDirectory.IsEmpty(folderPath) then begin TDirectory.Delete(folderPath); Result := True; end else begin if Application.MessageBox('确定要删除这个文件夹吗? 删除后无法恢复!', '提示', MB_ICONQUESTION + MB_YESNO) = ID_YES then begin TDirectory.Delete(folderPath, True); Result := True; end; end; // if TDirectory.Exists(folderPath) then // begin // Application.MessageBox('删除文件失败'+#13#10+'文件正确被使用?','错误',MB_ICONERROR+MB_OK); // Result:=False; // end; end; { if not ItemExist('Edit1.Text',TreeView1) then TreeView1.Items.AddChild(Treeview1.Selected,'Edit1.Text'); } function ItemExist(Text: string; TreeView: TTreeView): Boolean; var i: Integer; begin Result := False; if (Trim(Text) '') then begin for i := 0 to TreeView.Items.Count - 1 do if Trim(Text) = Trim(TreeView.Items[i].Text) then begin Result := True; Exit; end; end; Result := False; end; // ------------------------------------------------------------------------------ { TreeView获得选中的完整路径 aaaa\ssss\bbbb } function ExtractNodeFullPath(TreeView: TTreeView): string; var Path: string; Parent: TTreeNode; // Node: TTreeNode; begin Path := TreeView.Selected.Text; Parent := TreeView.Selected.Parent; while Parent nil do begin Path := Parent.Text + '\' + Path; Parent := Parent.Parent; end; Result := Path; end; function Get_node_path(node: TTreeNode): string; var Path: string; TreeNode: TTreeNode; begin Path := node.Text; TreeNode := node.Parent; while TreeNode nil do begin Path := TreeNode.Text + '\' + Path; TreeNode := TreeNode.Parent; end; Result := Path; end; { 获得文件完整路径 C:\abc\int.cpp } function ExtractTreeViewFileName(RootPath: string; TreeView: TTreeView): string; var FileName: string; begin Result := ''; if TreeView.Selected = nil then Exit; FileName := RootPath + ExtractNodeFullPath(TreeView); // 当前选中的文件名 if not FileExists(FileName) then Exit; Result := FileName; end; { 用RICHEDIT打开TREEVIEW中的文件 } function OpenFile(Path: string; RichEdit: TRichEdit; TreeView: TTreeView) : Boolean; overload; var FileName: string; begin Result := False; FileName := ExtractTreeViewFileName(Path, TreeView); if FileExists(FileName) then begin RichEdit.Lines.LoadFromFile(FileName); Result := True; end end; function OpenFile(Path: string; Webbrowser: TWebbrowser; TreeView: TTreeView) : Boolean; overload; var FileName: string; begin Result := False; FileName := ExtractTreeViewFileName(Path, TreeView); if FileExists(FileName) then begin Webbrowser.Navigate(FileName); Result := True; end end; { 将1个目录里面所有的文件添加到TREEVIEW中 GetDirectories(TreeView1, 'D:\DATA', nil, True); } procedure GetDirectories(Tree: TTreeView; Directory: string; Item: TTreeNode; IncludeFiles: Boolean); var SearchRec: TSearchRec; ItemTemp: TTreeNode; begin Tree.Items.BeginUpdate; if Directory[Length(Directory)] '\' then Directory := Directory + '\'; if FindFirst(Directory + '*.*', faDirectory, SearchRec) = 0 then begin repeat if (SearchRec.Attr and faDirectory = faDirectory) and (SearchRec.Name[1] '.') then begin if (SearchRec.Attr and faDirectory > 0) then Item := Tree.Items.AddChild(Item, SearchRec.Name); ItemTemp := Item.Parent; GetDirectories(Tree, Directory + SearchRec.Name, Item, IncludeFiles); Item := ItemTemp; end else if IncludeFiles then if SearchRec.Name[1] '.' then Tree.Items.AddChild(Item, SearchRec.Name); until FindNext(SearchRec) 0; FindClose(SearchRec); Tree.Items.EndUpdate; end; end; { 将1个目录里面所有的文件添加到TREEVIEW中 DirToTreeView(TreeView1,'D:\Data\',nil,True,'.cpp'); } procedure DirToTreeView(Tree: TTreeView; Directory: string; Root: TTreeNode; IncludeFiles: Boolean; FileExt: string); var SearchRec: TSearchRec; Node1: TTreeNode; begin with Tree.Items do begin BeginUpdate; if Directory[Length(Directory)] '\' then Directory := Directory + '\'; if FindFirst(Directory + '*.*', faDirectory, SearchRec) = 0 then begin Application.ProcessMessages; repeat { 添加文件夹 } if (SearchRec.Attr and faDirectory = faDirectory) and (SearchRec.Name[1] '.') then begin if SameText(RightStr(SearchRec.Name, 12), '_AttachMents') then // 不添加 _AttachMents这个文件夹 Continue; if (SearchRec.Attr and faDirectory > 0) then Root := AddChild(Root, SearchRec.Name); Node1 := Root.Parent; DirToTreeView(Tree, Directory + SearchRec.Name, Root, IncludeFiles, FileExt); Root := Node1; end else if IncludeFiles then { 添加文件 } if SearchRec.Name[1] '.' then { .TXT .txt .TxT .tXT 为一样的 } if SameText(RightStr(SearchRec.Name, 4), FileExt) then { 只添加 .CPP格式文件 } AddChild(Root, SearchRec.Name); until FindNext(SearchRec) 0; FindClose(SearchRec) end; EndUpdate; end; end; end.
目 录 数据库课程设计报告 1 1.开发环境和相关技术介绍 5 1.1开发环境 5 1.2相关技术介绍 5 2.需求分析 5 2.1系统需求和功能 5 2.1.2功能需求描述 6 2.1.2.1员工基本信息模块 6 2.1.2.2工资结构设置模块 6 2.1.2.3工资汇总模块 6 2.2数据字典 6 2.2.1数据结构 7 2.2.2数据项 7 2.2.3数据流 8 2.4安全性要求 8 2.5一致性要求 9 2.6完整性要求 9 3 概念结构设计 9 3.1设计方法和步骤 9 3.2概念结构E-R图 9 4.逻辑结构设计 9 4.1具体RDBMS数据模型转换 9 4.2系统结构图 10 5.数据库物理设计 10 5.1索引的选择建立 10 5.2数据存放位置 10 5.3确定系统配置 10 6.数据库实施 10 6.1数据库创建 10 6.1.1各数据表说明 10 6.1.2数据库创建 11 6.2数据库备份和恢复方案 13 6.2.1应用辅助工具进行备份和恢复 13 6.2.2分离数据库法 13 6.3用户界面设计和应用程序编码 13 6.3.1用户界面设计 13 6.3.2类文件功能描述 14 6.3.3主要代码分析 14 }7.系统测试方案和测试报告 21 7.1测试方案 21 7.2测试过程 21 7.2.1登陆测试 21 8.安装和使用说明 25 8.1安装说明 25 8.1.1安装VB6.0E 25 8.1.2安装Microsoft SQL Server 2000 ODBC驱动程序 25 8.1.3升级Microsoft SQL Server 2000数据库管理系统 25 8.1.4附加数据库 25 8.1.5可能出现情况 25 9.完成情况和总结 25 9.1总结 25 1.开发环境和相关技术介绍 1.1开发环境 项目名称: 工资管理系统 开发软件:vb6.0与Access 2000 运行环境:2000/XP/2003 1.2相关技术介绍 Microsoft SQL Server 2000数据库管理系统是微软公司研制开发的关系型数据库管理系统。该系统支持并扩展了SQL语言标准,可以运用标准SQL语句对数据进行操作,也可以使用功能强大的GUI工具进行灵活的数据管理。同时,系统还提供功能完善的API,可以在应用程序中调用这些API来实现与数据库系统的连接以及相关数据的操作。sp3是该系统的一个版本号,只有sp4以上的SQL 2000系统才能够支持纯ODBC连接方式。 Vb6.0功能强大的应用程序开发工具,主要支持基于面向对像化的语言的各种开发项目。 2.需求分析 2.1系统需求和功能 工资管理信息系统对企业加强工资管理有着重要的作用,就一般的大型企业来说,它的设计内容非常复杂而且繁多,比如拥有工资计算功能,工资统计功能,报表输出功能,而且设计的模块也很多,比如工资管理模块,工资统计模块,报表设计模块,打印输出模块,模糊查询模块等。 由于本软件主要是为作者工作的一家科技公司定制开发的。该公司是一家刚刚成立的公司,总体人员比较少,有正式员工20人,人员结构比较简单,学历比较高,基本拥有大专以上学历,部门划分也很清晰,而且人员的流动性不高,所以公司目前对工资管理的要求不高。因此,针对该公司而言,我们经过反复论证,最终确定了工资管理系统的设计方案,该工资管理系统的主要功能如图3.1所示: 2.1.2功能需求描述 2.1.2.1员工基本信息模块 员工基本信息模块具有员工信息输入、员工增删、员工信息查询三个功能,员工基本信息包括员工号、员工姓名、员工性别、所在部门、所在岗位、工龄和工资等级等信息。员工增删实现了对数据库中员工信息的增加和删除。员工可以通过员工号或员工姓名对员工信息进行查询。 2.1.2.2工资结构设置模块 根据该公司的工资管理实际情况,本系统将工资结构分为基础工资、岗位工资、工龄工资三部分。该模块可以对这三个工资类型设置工资等级,并对每个等级设置工资标准。 2.1.2.3工资汇总模块 用户在员工信息管理模块对该员工的工资等级进行输入以后,在工资汇总模块会自动对员工工资进行汇总。用户可以打印出工资汇总表,打印之前可以通过打印预览功能进行打预览。 2.2数据字典 该软件的数据库由下述四张数据表组成: 员工信息表、基础工资设置表、岗位工资设置表 1、 员工信息表 字段 字段名 类型 宽度 说明 1 员工号 字符型 3 数字 2 员工姓名 字符型 10 小于等于5个汉字 3 员工性别 字符型 2 “男”或“女” 4 岗位名称 字符型 14 小于等于7个汉字 5 工龄 数值型 2 1~99之间 6 工资等级 数值型 2 1~99之间 2、 基础工资设置表 字段 字段名 类型 宽度
第1章 空 第2章 ASP.NET运行模型 21.如何在页面中应用javascript脚本-示例1 21.如何在页面中应用javascript脚本-示例2 22.如何实现从服务器端向页面动态添加javascript脚本-示例1 22.如何实现从服务器端向页面动态添加javascript脚本-示例2 24.如何处理多页面重定向到同一页面后的返回问题 25.如何用Response.Redirect方法传递汉字 29.如何利用输出缓存技术缓存整个页面 30.如何利用片段缓存技术对用户控件进行缓存 31.如何利用数据缓存技术提高程序的性能 33.如何实现当页面产生错误时重定向到自定义错误界面 35.如何在程序中读写Web.config文件 37.如何使用CSS文件定义控件的样式 38.如何启用和禁用ViewState保存状态信息的功能 39.如何应用IsPostBack控制页面的加载 41.如何使用Trace对象进行跟踪调试(页面级) 42.如何使用#Include语法将文件添加到页面 43.如何使用编程的方式处理异常信息 44.如何将网页错误信息写入事件日志 第3章 常用Web服务控件 46.如何使用Label控件动态显示文本信息 47.如何实现当鼠标移到控件时显示提示信息 48.如何在Web应用程序中实现快捷键功能(使用脚本实现) 48.如何在Web应用程序中实现快捷键功能(使用属性实现) 49.如何设置页面上控件的Tab键顺序 50.如何实现用回车键代替Tab键的功能 51.如何为按钮键添加消息框 52.Button、LinkButton和ImageButton服务控件的区别及应用 54.如何使用CheckBox和CheckBoxList控件(CheckBox示例) 54.如何使用CheckBox和CheckBoxList控件(CheckBoxList示例) 55.如何使用RadioButton和RadioButtonList控件(RadioButton示例) 55.如何使用RadioButton和RadioButtonList控件RadioButtonList示例) 56.如何使用Panel控件操作一组控件 57.如何使用Table控件组织页面的内容 58.如何实现DropDownList控件选项的添加、删除等操作 59.如何实现间接改变DropDownList控件的当前选项 60.如何实现两个或多个DropDownList控件的联动 61.如何实现ListBox控件选项的上移、下移、添加和删除操作 62.如何实现ListBox控件中选项的双击事件 63.如何动态设置ListBox控件中各选项的背景颜色 64.如何在页面中动态创建控件 65.如何为HTML服务器控件的事件添加自定义方法 第4章 验证控件 67.如何使用RequiredFieldValidator控件验证用户是否输入信息 68.如何使用RegularExpressionValidator控件验证E-mail地址和邮编等格式 69.如何使用RangeValidator控件验证输入的信息是否在指定范围内 70.如何使用CompareValidator控件对两个输入控件比较验证 71.如何使用CustomValidator控件自定义验证格式 72.如何使用ValidationSummary控件总结所有验证控件的错误信息 73.如何创建自定义功能的验证控件 74.如何禁用服务器控件的验证功能 75.如何控制页面部分验证控件有效 76.如何实现控件即时验证功能 77.如何使用验证控件综合验证用户注册页面 78.如何验证DataGrid控件的编辑列 81.如何使用验证控件验证日期类型的输入(CompareValidator) 81.如何使用验证控件验证日期类型的输入(CustomerValidator) 81.如何使用验证控件验证日期类型的输入(RegularValidator) 第5章 高级Web控件 82.如何在网页中使用Calendar Web控件显示和选择日期 83.如何在Calendar Web控件中控制个别日的内容及显示 84.如何在Calendar Web控件中控制用户日期选定 86.如何使用XML控件显示XML文件和进行XSLT转换 87.如何使用AdRotator Web控件制作广告发布程序-示例1 87.如何使用AdRotator Web控件制作广告发布程序-示例2 88.如何创建用户控件 89.如何将Web窗体转换成用户控件 90.如何实现动态加载用户控件 92.如何使用TabStrip Web和MultiP
1,listview.ZIP 演示使用listview控制, 作出资源管理器中目录树中的效果 (7KB)2,dirview.ZIP 装入整个 c 盘目录到 treeview (4KB)3,progress.ZIP 演示使用win95的进度条(3KB)4,progbar.ZIP 进度条演示(4KB)5,slider.ZIP 使用滑动控制(6KB)6,statusbar.ZIP 控制状态条的例子(10KB) 7,tabstrip.ZIP tabstrip控制的例子 (10KB)8,treeview.ZIP 存储/恢复treeview的例子(10KB) 9,treelist.ZIP 使用treeview和listview显示数据库的数据 (7KB)10,combohg.ZIP 改变combobox的下拉高度(2KB) 11,dragtree.ZIP 拖拉树节点的例子(7KB) 12,lvstyles.ZIP 演示listview控制的例子(27KB) 13,make_toolbar_flat.ZIP 实现浮动工具条的例子(1KB) 14,code_coolbar.ZIP ie4风格的工具条(26KB)15,djmeter.ZIP 实现进度条的例子(10KB) 16,dupes.ZIP 一个combobox的例子(3KB) 17,formdsgn.ZIP 演示改变控件的大小和移动控件的例子(9KB)18,tvcheckboxes.ZIP treeview和checkbox的例子(9KB)19,tveventcancel.ZIP 使用treeview的简单例子(12KB) 20,tvnode-hitem.ZIP 在treeview节点处使用图形(6KB)21,timedmsg.ZIP 对windows的标准对话框还可以加上时间限制的例子(9KB)22,browsedlg.ZIP 通过对一系列的 api 及 shell32.dll 的调用来实现 windows 各种标准浏览选择对话框。此源代码为 vb4 设计。对后来版本同样适用(8KB) 23,listtips.ZIP listbox中使每一item有不同的tip(2KB) 24,newctl.ZIP 动态创建控件的例子,解决了vb5中不能"无中生有"的毛病(2KB)25,colourdg.ZIP 调用windows的颜色对话框, 不需用到"comdlg32.ocx"(3KB) 26,clipbutton.ZIP 在我们使用 vb 的 code 编辑器时,其粘贴、复制、剪切按钮能随着当前的选择情况而进行适当的调整,本程序演示了类似的功能, 作者:jin(kenj@163.net)(3KB) 27,clipview.ZIP 使用 windows 剪贴板(16KB) 28,richedit.ZIP 利用richtext实现的编辑器(3KB) 29,srchlist.ZIP 在 list 控件里进行增量查询(4KB)30,savetree.ZIP 以文件方式保存和恢复treeview(7KB)31,kenjLV1.zip ListView的API效果演示(10KB)32,txtsrch.zip 在Text中实现快速增量查询(4KB)33,TracBar.zip 滚动条模块,与 VB 的滚动条比较,该模块支持动态生成, 支持触发消息(7KB)34,treedrag.zip TreeView节点拖动、增加、删除等功能演示(8KB)35,wordwrap.zip 在 TextBox 中自动换行(2KB)36,combosrc.zip 在 COMBO 中的增量查询(2KB)37,progman.zip 制作安装程序必备,此模块包含的SUB及Function能帮你做出专业的安装程序(2KB)38,messageboxdemo.zip 用API调出MessageBox框!(6KB)39,associate.zip 建立关联程序的例子。本程序演示把 .bar 文件与 NotePad建立关联(3KB)40,tbar97.zip 制作的一个类似Office97的工具栏,除了不能移动外,其他都极为相似!(24KB)41,combomagic.zip 在 COMBO 中的增量查询(3KB)42,cursortest.zip 鼠标控制演示。提供了一个鼠标控制的类,包括移动、限制隐藏等功能(4KB)43,cpu.zip 监视 CPU 使用情况的例子(4KB)44,cdfind.zip 找出系统光驱的盘符(3KB)45,up.zip 数字大写转换程序(4KB)46,ktext.zip VB编程中突破64K的文本显示限制(2KB)47,menudemo.zip 使用API改变菜单,使之具有几列,如同Windows的开始菜单一样(4KB)48,clipcur.zip 限制鼠标的移动区域(2KB)49,findlist.zip 在ListBox快速搜寻字符串(5KB)50,getword.zip 读取鼠标所在位置的单词(5KB)51,filemanager.zip 文件管理器(8KB)52,mousedemo.zip 一些鼠标例子演示(3KB)53,calendar.zip 一个小小的日历程序(4KB)54,hotkey.zip VB编程中热键应用一例(3KB)55,noalt+f4.zip 去掉窗体关闭按钮 (2KB)56,cpuinf.zip 取得CPU的报告(16KB)57,viewpw.zip 密码查看器,可查看"***"的字符(7KB)58,regdemo.zip 向注册表建立关联文件(3KB)59,cipher.zip 加密/解密字符串的例子(3KB)60,browsefolders5.zip 浏览一个子目录(3KB)61,easymail.zip 文件加密/解密的例子(5KB)62,encstrings.zip 加密/解密字符串的例子(2KB)63,keybinf.zip 键盘信息报告例子(2KB)64,reginq.zip 读取注册表的例子,利用了API可读注册表中所有的项目(4KB)65,wpchanger.zip Windows墙纸更改事例 (3KB)66,vbtozip.zip 用VB压缩文件(最简单的方法)(2KB)67,anicursor.zip 演示如何使用动画光标 VB源码(7KB)68,cfdemo.zip 不用CommonDialog控件,使用API调用字体对话框 VB源码(281KB)69,cmdlgd.zip 替换 Windows 公共对话框的 DLL 和演示程序的源代码,具有HOOK 功能(86KB)70,colordlg.zip 不用CommonDialog控件,使用API调用颜色对话框 VB源码(4KB)71,commondialogs.zip Windows 公共对话框的源代码,包含文件、打印机、颜色、字体、游览对话框(7KB)72,cpuinfo.zip 得到CPU的详细信息 VB源码(16KB)73,fileprops.zip 演示如何调用 Windows 资源管理器中的文件属性对话框(7KB)74,progbar121.zip 进程杆控件的源代码。具有水平、垂直,渐变,显示文本和百分比,播放声音的功能,不会让您失望。(12KB)75,subcls328.zip 一个子类的源代码,包含菜单、MDI窗体背景等8个演示程序(46KB)76,taskbar.zip 把应用程序的图标放在任务栏的右侧,是一个控件源代码(6KB)77,vbthread.zip 用VB实现多线程 VB源码(15KB)78,ini_vb6.zip 用WindowsAPI访问INI文件(8KB)79,syshotkey.zip 创建一个系统级的热键,无论你的程序是否获得焦点热键不生效 (4KB)80,win98mi.zip Win98多显示器支持演示(31KB)81,message.zip 拦截Windows消息(8KB)82,viewdoc.zip 用系统默认程序查看并打印文档 (7KB)83,srcset.zip 改变屏幕到16位彩色的演示 (2KB)84,moduleini.zip 访问、修改INI的函数(1KB)85,listapp.zip 枚举系统正在运行的程序(包括隐含的) (5KB)86,hidebtn.zip 隐藏Win9X中任务栏上的“开始”按钮(2KB)87,win95grp.zip 获得Windows9X下开始|程序中所有的程序组(16KB)88,clipview.zip 如何查看剪贴板中的带格式文本 (42KB)89,sysinfo.zip 获得系统的信息:硬盘、显示器、内存... (3KB)90,zm.zip 取得计算机中所有Modem的名称(2KB)91,custmnu2.zip 又一个菜单的例子(5KB)92,collSRC.zip 程序收集1.0版 (214KB)93,countdown.zip 一个倒计时的程序(10KB)94,00951404.zip 利用热键操作实现一键通(55KB)95,system_v.zip 系统监视器,可以实时监视正在运行的程序,并关闭他(29KB)
第2章 ASP.NET运行模型
21.如何在页面中应用javascript脚本-示例1
21.如何在页面中应用javascript脚本-示例2
22.如何实现从服务器端向页面动态添加javascript脚本-示例1
22.如何实现从服务器端向页面动态添加javascript脚本-示例2
24.如何处理多页面重定向到同一页面后的返回问题
25.如何用Response.Redirect方法传递汉字
29.如何利用输出缓存技术缓存整个页面
30.如何利用片段缓存技术对用户控件进行缓存
31.如何利用数据缓存技术提高程序的性能
33.如何实现当页面产生错误时重定向到自定义错误界面
35.如何在程序中读写Web.config文件
37.如何使用CSS文件定义控件的样式
38.如何启用和禁用ViewState保存状态信息的功能
39.如何应用IsPostBack控制页面的加载
41.如何使用Trace对象进行跟踪调试(页面级)
42.如何使用#Include语法将文件添加到页面
43.如何使用编程的方式处理异常信息
44.如何将网页错误信息写入事件日志
第3章 常用Web服务控件
46.如何使用Label控件动态显示文本信息
47.如何实现当鼠标移到控件时显示提示信息
48.如何在Web应用程序中实现快捷键功能(使用脚本实现)
48.如何在Web应用程序中实现快捷键功能(使用属性实现)
49.如何设置页面上控件的Tab键顺序
50.如何实现用回车键代替Tab键的功能
51.如何为按钮键添加消息框
52.Button、LinkButton和ImageButton服务控件的区别及应用
54.如何使用CheckBox和CheckBoxList控件(CheckBox示例)
54.如何使用CheckBox和CheckBoxList控件(CheckBoxList示例)
55.如何使用RadioButton和RadioButtonList控件(RadioButton示例)
55.如何使用RadioButton和RadioButtonList控件RadioButtonList示例)
56.如何使用Panel控件操作一组控件
57.如何使用Table控件组织页面的内容
58.如何实现DropDownList控件选项的添加、删除等操作
59.如何实现间接改变DropDownList控件的当前选项
60.如何实现两个或多个DropDownList控件的联动
61.如何实现ListBox控件选项的上移、下移、添加和删除操作
62.如何实现ListBox控件中选项的双击事件
63.如何动态设置ListBox控件中各选项的背景颜色
64.如何在页面中动态创建控件
65.如何为HTML服务器控件的事件添加自定义方法
第4章 验证控件
67.如何使用RequiredFieldValidator控件验证用户是否输入信息
68.如何使用RegularExpressionValidator控件验证E-mail地址和邮编等格式
69.如何使用RangeValidator控件验证输入的信息是否在指定范围内
70.如何使用CompareValidator控件对两个输入控件比较验证
71.如何使用CustomValidator控件自定义验证格式
72.如何使用ValidationSummary控件总结所有验证控件的错误信息
73.如何创建自定义功能的验证控件
74.如何禁用服务器控件的验证功能
75.如何控制页面部分验证控件有效
76.如何实现控件即时验证功能
77.如何使用验证控件综合验证用户注册页面
78.如何验证DataGrid控件的编辑列
81.如何使用验证控件验证日期类型的输入(CompareValidator)
81.如何使用验证控件验证日期类型的输入(CustomerValidator)
81.如何使用验证控件验证日期类型的输入(RegularValidator)
第5章 高级Web控件
82.如何在网页中使用Calendar Web控件显示和选择日期
83.如何在Calendar Web控件中控制个别日的内容及显示
84.如何在Calendar Web控件中控制用户日期选定
86.如何使用XML控件显示XML文件和进行XSLT转换
87.如何使用AdRotator Web控件制作广告发布程序-示例1
87.如何使用AdRotator Web控件制作广告发布程序-示例2
88.如何创建用户控件
89.如何将Web窗体转换成用户控件
90.如何实现动态加载用户控件
92.如何使用TabStrip Web和MultiPage Web控件制作选项卡式页面
93.如何使用Toolbar Web控件制作工具条式页面
94.如何识别Toolbar Web控件中哪个按钮激发的ButtonClick事件
95.如何使用TreeView Web控件
96.如何在TreeView Web控件中动态添加、删除TreeNode节点
100.如何使用TreeView Web控件中的TreeNodeType进行外观控制
101.如何使用TreeView Web控件绑定XML文件-示例1
101.如何使用TreeView Web控件绑定XML文件-示例2
第6章 数据服务控件
103.如何使用Repeater控件显示数据
104.如何使用Repeater控件的模板
105.如何实现Repeater控件的分页
106.如何使用DataList控件显示数据
107.如何实现选择DataList控件中的条目后显示该条目的详细信息
108.如何实现DataList控件的编辑功能
109.如何对DataList控件使用样式
110.如何在DataList控件中创建多个列
111.如何实现DataList控件的分页功能
112.如何在DataGrid中添加自动编号的功能
113.如何控制DataGrid绑定列绑定的数据类型为日期的显示格式
114.如何把DataGrid中某一列的统计值显示在页脚中
115.如何在DataGrid中让不同条件的行显示不同的背景颜色
116.如何在DataGrid中实现分页功能
117.如何实现鼠标移到DataGrid控件的某一行时改变该行的背景
118.如何在DataGrid控件中实现自定义分页功能
119.如何在DataGrid中弹出一个详细信息窗口-示例1
119.如何在DataGrid中弹出一个详细信息窗口-示例2
120. 如何在DataGrid控件中添加CheckBox控件列
121.如何为DataGrid控件中的删除列添加确认框
122.如何使用DataGrid控件实现主细表
123.如何实现DataGrid控件的双向排序
124.如何动态的显示·隐藏DataGrid控件的某一列
125.如何实现DataGrid控件中DropDownList控件的绑定
126.如何在DataGrid控件中实现数据项的编辑、更新、取消
127.如何在DataGrid控件中删除最后一页的最后一记录
128.如何把数据库中的数据以Excel文件的格式在显示浏览器中
129.如何给DataGrid控件添加个标题并实现分类显示
130.如何实现DataGrid控件中DropDownList控件的联动
131.DataGrid控件使用综合举例
第7章 数据绑定技术
132.如何单值绑定到控件的属性
133.如何将DataTable绑定到DataGrid Web控件
134.如何将DataSet绑定到DataGrid Web控件
135.如何将DataView绑定到DataGrid Web控件
136.如何将DataReader绑定到DataGrid Web控件
137.如何将表中的列绑定到DropDownList Web控件
138.如何使用DataBinder.Eval()方法进行数据绑定
139.如何将ArrayList绑定到ListBox Web控件
140.如何将Hashtable绑定到RadioButtonList Web控件
141.如何将XML作为数据源绑定到控件
第8章 数据库设计
143.ASP.NET应用程序如何实现与SQL Server数据库的连接
144.ASP.NET应用程序如何实现与ACCESS数据库的连接
146.如何使用ADO.NET在数据库执行SQL语句
147.如何使用DataReader快速访问SQL Server数据
148.如何使用DataAdapter将数据填充到DataSet并显示出来
149.如何使用DataTable对象存储数据库表
150.如何对DataTable进行检索和排序
151.如何使用DataView进行数据排序和检索
152.如何在DataSet的DataTable间建立父子表关系
154.如何实现SQL Server数据库操作中的异常捕捉和处理
155.如何将数据库中的数据填充到XML文件中
157.如何使用Web.config配置数据库连接字符串
161.如何编写访问数据库的通用代码
162.如何在SQL Server数据库中编程获取用户表的数目和名称
163.如何获取SQL Server服务器端所有数据库列表
164.如何保存图片文件到SQL Server数据库
165.如何将数据库中保存的图片显示到页面中
166.如何在插入记录后获得记录的标识号
167.如何解决ADO.NET访问ACCESS数据库出现“操作必须使用一个可更新的查询”的问题
168.如何从EXCEL文件中读取数据
169.如何备份和恢复数据库
第9章 ASP.NET安全策略
第10章 常用功能及函数集
180.如何在ASP.NET中获得客户端IP地址
181.如何取得一定范围内的随机数
182.如何取得文件的扩展名示例一
182.如何取得文件的扩展名示例二
183.如何把字符串型数据转换为整型
184.如何取得当前系统时间
185.如何取得指定的年份中有多少天
186.如何取得客户端的鼠标坐标并反馈到服务器端
187.如何使用JMAIL组件实现邮件的发送
187.如何使用JMAIL组件实现邮件的接收
188.如何使用ASP.NET中的类库实现邮件的发送
189.如何生成图片的缩略图
190.如何在ASP.NET中动态的创建柱状和饼状统计图
192.如何判断上传图片的高度和宽度
193.如何使用DESCryptoServiceProvider类对数据或者文件进行加密解密
194.如何统计在线人数
195.如何在ASP.NET实现验证码
196.如何在本地取得指定网页的源代码
197.如何在ASP.NET中做一个日期选择器
198.如何在弹出对话框的同时保持页面的显示
199.如何点击按钮弹出新页面,输入数据后返回并且不刷新页面
第11章 文件操作
200.如何读取、修改文本文件
201.如何在ASP.NET中实现文件的上传
202.如何在ASP.NET中实现多文件的上传
203. 如何取得指定目录下的文件列表
204.如何在ASP.NET中创建日志文件
205.如何取得系统日志,并把日志信息写到文本文件中
206.如何在ASP.NET中创建、删除、复制文件
207.如何动态的创建HTML文件
第12章 XML相关处理技术

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧