分类 编程 下的文章

on事件大全

一般事件 事件 浏览器支持 描述

onClick IE3|N2|O3 鼠标点击事件,多用在某个对象控制的范围内的鼠标点击

onDblClick IE4|N4|O 鼠标双击事件

onMouseDown IE4|N4|O 鼠标上的按钮被按下了

onMouseUp IE4|N4|O 鼠标按下后,松开时激发的事件

onMouseOver IE3|N2|O3 当鼠标移动到某对象范围的上方时触发的事件

onMouseMove IE4|N4|O 鼠标移动时触发的事件

onMouseOut IE4|N3|O3 当鼠标离开某对象范围时触发的事件

onKeyPress IE4|N4|O 当键盘上的某个键被按下并且释放时触发的事件.[注意:页面内必须有被聚焦的对象]

onKeyDown IE4|N4|O 当键盘上某个按键被按下时触发的事件[注意:页面内必须有被聚焦的对象]

onKeyUp IE4|N4|O 当键盘上某个按键被按放开时触发的事件[注意:页面内必须有被聚焦的对象]

- 阅读剩余部分 -

C#模拟POST提交表单--WebClient

[csharp]view plaincopyprint?

stringpostString="arg1=a&arg2=b";//这里即为传递的参数,可以用工具抓包分析,也可以自己分析,主要是form里面每一个name都要加进来
byte[]postData=Encoding.UTF8.GetBytes(postString);//编码,尤其是汉字,事先要看下抓取网页的编码方式
stringurl="http://localhost/register.php";//地址
WebClientwebClient=newWebClient();
webClient.Headers.Add("Content-Type","application/x-www-form-urlencoded");//采取POST方式必须加的header,如果改为GET方式的话就去掉这句话即可
byte[]responseData=webClient.UploadData(url,"POST",postData);//得到返回字符流
stringsrcString=Encoding.UTF8.GetString(responseData);//解码







- 阅读剩余部分 -

VS2010出现FileTracker : error FTK1011编译错误的解决办法

<div><p>FileTracker : error FTK1011编译错误的解决办法有三个。</p><p>方法一:把目标框架改为Framewotk=4.0
方法二:新增环境变量TRACKFILEACCESS=false:
操作步骤:右击"我的电脑"(或"计算机")-->"高级"-->"环境变量"-->"新建系统变量"-->填写"变量名"为"TRACKFILEACCESS",变量值为"false",保存即可.</p><p></p><div style="page-break-after: always;"><span style="display: none;"><!--more-->& nbsp ;</span></div><p>方法三:</p><p>打开文件: C:WINDOWSMicrosoft.NETFrameworkv4.0.30319Microsoft.Common.Targets</p><p>找到</p><p><GenerateResource</p><p>…</p><p>TrackFileAccess="$(TrackFileAccess)&quot;<br />TrackerLogDirectory=&quot;$(TrackerLogDirectory)"</p><p>…</p><p></GenerateResource></p><p>删除</p><p>TrackFileAccess="$(TrackFileAccess)&quot;<br />TrackerLogDirectory=&quot;$(TrackerLogDirectory)"</p><p>三种方式均可解决这个编译时的错误。</p></div>

- 阅读剩余部分 -

推荐 15 款很棒的文本编辑器

<div><p>本文中提及的文本编辑器软件,并非全部开源,仅供参考。</p><p>1. <u>Notepad++</u>:</p><p></p><p>这是 Windows 记事本一个最好的替换产品,主要特点包括:</p><p>a. 自动完成
b. 语法高亮
c. 拖放特性
d. 搜索
e. 缩放</p><div style="page-break-after: always;"><span style="display: none;"><!--more-->& nbsp ;</span></div><p>2. <u>PSPad</u>: </p><p></p><p>PSPad 是一个Windows平台上免费的适合程序员使用的编辑器。它可以让你保持上一次编辑状态,这样在你下次打开编辑器的时候可以直接显示原来的文件。此外它还支持通过FTP进行远程编辑,支持多文件的比较等。</p><p>a. 语法高亮
b. 支持多文档编辑
c. 内建 FTP 客户端
d. 完整的十六进制编辑器
e. 桌面会话保存</p><p>3. <u>Komodo</u>:</p><p></p><p>Komodo IDE可以在 Windows、Mac OS X 和 Linux 上运行,并支持通用的开源语言 —— Perl、PHP 和 Ruby。代码智能引擎非常可靠。它扫描所有语言安装找到定制扩展,比如 PEAR 模块。在项目方面,它支持与 CVS、Subversion 和 Perforce 的集成,也允许直接向服务器 FTP 传递代码。</p><p>主要特点:</p><p>a. 代码折叠
b. 即时语法检查
c. 支持多种语言
d. 跨平台支持:Windows, Linux and Mac</p><p>4. <u>Coda</u>:</p><p></p><p>只支持 Mac 平台的文本编辑器,主要特点:</p><p>a. 语法高亮
b. 行数计算
c. 自动完成
d. 自动保存代码片段</p><p>5. <u>Vim</u>:</p><p></p><p>Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。</p><p>6. <u>TextMate</u>:</p><p></p><p>Mac 平台下一款强大的文本编辑器,主要特性:</p><p>a. 代码自动完成
b. 可直接在文档中运行 SHELL 命令
c. 支持多种风格
d. 支持宏
e. 目前已提供 Windows 版本</p><p>7. <u>TotalEdit</u>:</p><p></p><p>Windows 下的免费编辑器,功能:</p><p>a. 语法高亮
b. 文件浏览器
c. 拼写检查
d. 扩展工具集成
e. 环境定制</p><p>8. <u>Gedit</u>:</p><p></p><p>这是 Linux 下的一个纯文本编辑器,但你也可以把它用来当成是一个集成开发环境 (IDE), 它会根据不同的语言高亮显现关键字和标识符。</p><p>9. <u>Crimson Editor</u>:</p><p></p><p>一个小型的代码编辑器,加载时间很短,主要特性:</p><p>a. 语法高亮
b. 多文档编辑
c. 拼写检查
d. 查找和替换
e. 宏</p><p>10. <u>UltraEdit</u>:</p><p></p><p>这个工具大家都非常熟悉,不再废话。</p><p>11. <u>TextPad</u>:</p><p></p><p>一款常用的文本编辑器,主要特性:</p><p>a. 多语言拼写检查
b. 自动文本完成
c. 宏录制
d. 搜索工具条</p><p>12. <u>NoteTab</u>:</p><p></p><p>便携式 HTML 编辑器,支持 Windows,特性:</p><p>a. 搜索和替换
b. Tabbed 接口
c. HTML文档格式化
d. 高便携,可在 U盘中运行
e. 快速可靠</p><p>13. <u>EditPlus</u>:</p><p></p><p>这是我喜欢的文本编辑器,特点:</p><p>a. 语法着色
b. 多语言支持
c. 内建文件浏览器
d. 自动完成
e. 拼写检查</p><p>14. <u>Nvu</u>:</p><p></p><p id="zh_p">NVU 实际上起源于Netscape,还记得那个有点笨拙的HTML编辑器Netscape Composer吗?NVU就是在它的基础上进一步开发出来的,不过,最新版本的NVU已经不是当年的那只丑小鸭,它完全能够胜任专业网页设计工作的需 求。与FrontPage和Dreamweaver这类商业HTML编辑器一样,这款软件(目前支持Windows、Linux和Mac OS平台)同时提供了源代码直接编辑和“所见即所得”这两种网页设计环境。</p><p id="zh_p">NVU严格遵循W3C联盟的标准,其生成的 HTML代码也相当紧凑,它会帮你排除错误或冗余的代码。这款编辑器提供了拼写和语 法检查功能,并且允许你采用不同的主题方案对界面进行定制。你可以自行创建并保存模版,还可以利用内置的FTP客户端把页面迅速上传到Web服务器上。</p><p>15. <u>E-TextEditor</u>:</p><p></p><p>Windows 下的编辑器,具有以下特性:</p><p>a. 键盘快捷键
b. 自动化以提升性能
c. 多语言支持
d. 修订版本控制
e. 个性化定制</p></div>

- 阅读剩余部分 -

文本流和二进制流

我们在写C程序的时候经常会涉及到对流的操作,比如说从标准输入流读取一串字符串,然后通过标准输出流输出显示在屏幕上,这也就是所谓的IO操作。那么流究竟是什么东西?下面首先对流这个概念做一下解释。

一.流(stream)的概念

计 算机有很多外部设备,比如键盘、鼠标、CD-ROM驱动器、硬盘、网络接口、视频适配器等。这些设备都和IO操作有关系,而每种设备都具有不同的特性和操 作协议。操作系统负责实现微处理器和和这些外设的通信细节,并向应用开发程序员提供更为简单和统一的IO接口,比如Linux操作系统下的 open(),read(),write()等系统调用使我们可以以文件的形式打开并读写一个设备。

- 阅读剩余部分 -

面向对象编程和面向过程编程的差异

<p>1、面向过程是是一种以过程为中心的编程思想,其思想体现在:
   
    ● 是一种最基础的方法,考虑的是实际的实现。
   
    ● 认为一个系统应该划分为数据和功能,并且数据和加工数据的功能是分离的。
   
    ● “面向过程”也可称之为“面向记录”编程思想,他们不支持丰富的“面向对象”特性(比如继承、多态),并且它们不允许混合持久化状态和域逻辑。</p><div style="page-break-after: always;"><span style="display: none;"><!--more-->& nbsp ;</span></div><p>
   
    ● 分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了,即面向过程最重要的是模块化的思想方法。
   
    2、面向对象主要是把事物给对象化,它的思想体现在:
   
    ● 包含了面向过程的特征,是一种更高级的解决问题的思路--从现实世界中的客观对象出发,尽量运用人类的自然思维方式(如抽象和分类)来构造软件系统
   
    ● 摒弃了数据和功能独立的特点,而是定义为一组正在交互的对象。对象可以完成一些事情(即功能,具体实现表现为类方法),也知道一些事情(即数据,具体实现表现为属性)
   
    ● 用对象的属性表示事物的静态特征,用对象的方法来表示事物的动态特征
   
    ● 运用人类的思维对事物进行分类
   
    ● 类具有封闭性,即把类内部的属性和服务隐藏起来,只有公共的服务对外是可见的
   
    ● 复杂的对象可以用简单的对象作为其构成部分(聚合的思想)
   
    ● 对事物进行分层,采用继承的思想对事物一般化和特殊化
   
    ● 对象之间通过消息进行通信,来实现对象之间的动态联系(消息机制)
   
    从上面的思想可以看出面向对象的三大基本特征:
   
    ● 封装:把客观事物封装成抽象的类。类包含数据和方法,封装即只让可信的类或者对象操作,对不可信的类进行信息隐藏。通过接口,类隐藏其中的属性和方法的具体实现。
   
    ● 继承:按层分类的概念。继承实现了子类和父类:子类可以使用父类的所有功能,并且对这些功能进行扩展。继承的过程,就是从一般到特殊的过程。
   
    ● 多态:同种事物,多种状态,即同一个接口名称,但是体现为不同的功能。多态有两种方式:覆盖和重载。覆盖是指子类重新定义父类的方法,而重载是指同一个中 允许存在多个同名方法,而这些方法的参数不同(或者是参数个数不同,或者是参数类型不同,或者两种都不同)。
   
    说了这么说,还是借用百科中的例子来说明两者的差异吧!
   
    学生早上起来的事情来说说这种面向过程吧。粗略的可以将过程拟为:
   
    (1)起床
   
    (2)穿衣
   
    (3)洗脸刷牙
   
    (4)去学校
   
    那么面向过程设计的思路为,将四个过程分为四个子程序,然后在主程序中按照这四步一步步的顺序调用子程序完成即可。而如果是用面向对象的方法的话,可能就只抽象出一个学生的类,它会包括这四个方法,但是具体的顺序就不需要体现出来。
   
    如果学生又可分为文科生、理科生的话,他们的上课科目不一样。那么面向过程就需要重新分情况来设计子模块,使得维护成本大大增加。而面向对象设计则在重用学生类的基础上只需要采用将学生类特殊化为理科生和文科生,可扩展性和维护性较高。
   
    从这个例子中可以看出,面向对象的代码更加支持重用,能降低软件开发和维护的成本,提高软件的质量。因此面向对象在实际的软件设计中应用广泛--这就是思维高度发展的必然趋势吧!</p>

- 阅读剩余部分 -

JSONObject与JSONArray的使用

1.JAR包简介

要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包:

commons-lang.jar
commons-beanutils.jar
commons-collections.jar
commons-logging.jar 
ezmorph.jar
json-lib-2.2.2-jdk15.jar






- 阅读剩余部分 -

C# 实现置顶窗体(可实现单次置顶或持续置顶)

<div><p>//首先要说明的是与TopMost的效果不同,TopMost是属性定义,而且设置True后,如果不设为Flase则一直置顶,效果很差,</p><p>//以下方法解决了TopMost使用上的不足</p><p>//调用API
[System.Runtime.InteropServices.DllImport("user32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto, ExactSpelling = true)]
public static extern IntPtr GetForegroundWindow(); //获得本窗体的句柄
[System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "SetForegroundWindow")]
public static extern bool SetForegroundWindow(IntPtr hWnd);//设置此窗体为活动窗体
//定义变量,句柄类型
public IntPtr Handle1;</p><div style="page-break-after: always;"><span style="display: none;"><!--more-->& nbsp ;</span></div><p>//在窗体加载的时候给变量赋值,即将当前窗体的句柄赋给变量</p><p>void Form1_Load(object sender, EventArgs e)
{
Handle1 = this.Handle;
timer2.Enabled = true;
}</p><p>//加载一个定时器控件,验证当前WINDOWS句柄是否和本窗体的句柄一样,如果不一样,则激活本窗体</p><p>private void timer2_Tick(object sender, EventArgs e)
{
if (Handle1 != GetForegroundWindow()) //持续使该窗体置为最前,屏蔽该行则单次置顶
{
SetForegroundWindow(Handle1);</p><p>//timer2.Stop();//此处可以关掉定时器,则实现单次置顶
}
}</p><pre>namespace WinFormsApp_GetForegroundWindowTest</pre><pre>{</pre><pre>publicpartialclass Form1 : Form</pre><pre> {</pre><pre>//调用API</pre><pre> [System.Runtime.InteropServices.DllImport("user32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto, ExactSpelling = true)]</pre><pre>publicstaticextern IntPtr GetForegroundWindow(); //获得本窗体的句柄</pre><pre> [System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "SetForegroundWindow")]</pre><pre>publicstaticexternbool SetForegroundWindow(IntPtr hWnd);//设置此窗体为活动窗体</pre><pre>//定义变量,句柄类型</pre><pre>public IntPtr Handle1;</pre><pre> Timer timer2 = new Timer();</pre><pre> </pre><pre>public Form1()</pre><pre> {</pre><pre> InitializeComponent();</pre><pre> }</pre><pre> </pre><pre> Form Form2;</pre><pre> </pre><pre>//在窗体加载的时候给变量赋值,即将当前窗体的句柄赋给变量</pre><pre>void Form1_Load(object sender, EventArgs e)</pre><pre> {</pre><pre> Handle1 = this.Handle;</pre><pre> timer2.Tick += new EventHandler(timer2_Tick);</pre><pre> timer2.Interval = 1000;</pre><pre> }</pre><pre> </pre><pre>//加载一个定时器控件,验证当前WINDOWS句柄是否和本窗体的句柄一样,如果不一样,则激活本窗体</pre><pre>privatevoid timer2_Tick(object sender, EventArgs e)</pre><pre> {</pre><pre>//if (Handle1 != GetForegroundWindow()) //持续使该窗体置为最前,屏蔽该行则单次置顶</pre><pre>//{</pre><pre> SetForegroundWindow(Handle1);</pre><pre> timer2.Stop();//此处可以关掉定时器,则实现单次置顶</pre><pre>//}</pre><pre> }</pre><pre> </pre><pre>privatevoid btnSetForm2ToTop_Click(object sender, EventArgs e)</pre><pre> {</pre><pre>if (Form2 == null) return;</pre><pre> </pre><pre> timer2.Enabled = true;</pre><pre> Handle1 = Form2.Handle;</pre><pre> }</pre><pre> </pre><pre>privatevoid btn_OpenForm2_Click(object sender, EventArgs e)</pre><pre> {</pre><pre> Form2 = new Form();</pre><pre> Form2.Text = "Form2";</pre><pre> Form2.Show();</pre><pre> }</pre><pre> }</pre><pre>}</pre></div>

- 阅读剩余部分 -

随机文章

最近回复

分类

其它

友情连接

推广链接