C#学习及与delphi的比较(二)
C#的ToolTip(delphi叫Hint)机制非常怪,不是像delphi的元件一样,每个TControl有一个Hint属性,C#有一个ToolTip元件,当把这个元件从工具箱拉到form上后,选中form上的任何control元件,在属性窗体(Object Inspector)上就会多出一个属性“toolTip1上的ToolTip”,如果多拉几个ToolTip元件到form上,就会多出现几个这样的属性“toolTip2上的ToolTip”,“toolTip3上的ToolTip”.......怪异,实在是怪异,不知道叫什么设计模式。查看ToolTip的函数,有两个GetTooTip(Control AControl),SetTooTip(Control AControl,string AToolTip),感觉TooTip元件就是一个Dictionary,但是没有属性来知道某个ToolTip元件为多少个Control设定了ToolTip字串。
另一个奇怪的是,ToolStripStatusLabel/ToolStripDropDownButton等元件比较特殊,他们却有一个ToolTipText属性,他们实现Hint的机制又不靠ToolTip元件。
相关文档:
Delphi的VCL框架在创建应用时TApplication是一个自动创建的隐藏窗口,其它创建的窗口是自动以该窗口为窗口,这就导致创始的主窗口在任务栏的系统菜单只有三项,只要在主窗口的Create事件中将系统菜单用Application的系统菜单替换,并将SysCommand消息转发到主窗口就正常了。
unit Unit1;
interface
uses
Windows ......
1.SHIFT+鼠标左键 先选中任一控件,按键后可选中窗体(选中控件后按Esc效果一样)
2.Shift+F8 调试时弹出CPU窗口。
3.Shift+F10 等于鼠标右键(Windows快捷键)。
&n ......
unit winntService;
interface
uses
Windows,WinSvc,WinSvcEx;
function InstallService(const strServiceName,strDisplayName,strDescription,strFilename: string):Boolean;
procedure UninstallService(strServiceName:string);
implementation
function StrLCopy(Dest: PChar; const Source: PChar; MaxLen: C ......
刚开始很不习惯c#的风格,哎,先入为主啊,delphi习惯了,{}代替begin/end太扎眼。
属性方法的宣告和代码在一起,没有像delphi分interface/implementation,感觉太乱,都不知道一个class到底有几个方法。
每个属性和方法前面都要单独写private/protected/public,老天,c#是delphi之父设计的揶,怎么不学delphi写一个就行 ......
这是一个用c#控制台程序下, 用XmlDocument 进行XML操作的的例子,包含了查询、增加、修改、删除、保存的基本操作。较完整的描述了一个XML的整个操作流程。适合刚入门.net XML操作的朋友参考和学习。
假设有XML文件:books.xml
Xml代码:
<?xml version="1.0" encoding="UTF-8"?>
<books>
< ......