博文

VB.NET:键盘控制焦点移动(2008-08-23 09:59:00)

摘要:VB.NET:键盘控制焦点移动 开发者在线 Builder.com.cn 更新时间:2007-09-10作者:中国IT实验室 来源:中国IT实验室 本文关键词: VB.NET 键盘 焦点移动 在数据库的项目中,一定会有输入数据的Form。最令录入人员头痛的就是每填完一个数据后,要再操作鼠标,或者另一只手按一下Tab(不过还是很麻烦)。最人性化的就是:按回车键(在小键盘内输入只要一只手就可以了),还可以用方向键控制。 第一步:Form的KeyPreview的属性为True;

第二步:按照需要把TabIndex按顺序设置;

第三步:编写一个方法,代码如下: '---FocusMove Is Function Name--

'---ControlName Is the Control's Name Which you want to use ---

Private Sub FocusMove()Sub FocusMove(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ControlName1.KeyPress,ControlName2.KeyPress

If e.KeyChar = ChrW(13) Then

'---SelectNextControl is a Function will be introduced next---

SelectNextControl(sender, True, True, True, False)

End If

End Sub SelectNextControl的说明来自MSDN: 激活下一个控件。 [Visual Basic]

Public Function SelectNextControl( _

ByVal ctl As Control, _

ByVal forward As Boolean, _

ByVal tabStopOnly As Boolea......

阅读全文(1184) | 评论:0

VB.net与Media Player9.0嵌入式开发(2008-08-23 09:58:00)

摘要:VB.net与Media Player9.0嵌入式开发 开发者在线 Builder.com.cn 更新时间:2007-09-10作者:张悦 来源:51CTO.com  本文关键词: VB.NET Media Player 嵌入式 开发 Windows Media Player 9.0是微软推出的最新数字媒体播放器,它除了继承了media player 8.0的优秀之处外,还添加了许多的实用功能。不过这些功能并不是本文讲述的重点,本文要讲的是如何利用media player来编写一个自己的嵌入式软件,并让它拥有播放cd,vcd,avi,mp3等的功能。  要编写这个程序你首先要熟悉vb.net,因为本程序是使用vb.net编写。在你的计算机上要安装windows media player 9.0。最后最关键的是要安装windows mendia player 9.0 sdk,在sdk中包含了一个dll,这个dll的作用是完成com和.net之间的转换,因为media player 9.0的编程要使用一个media player 9.0 activeX控件,而activeX的本质就是一个com。对于windows mendia player 9.0 sdk可以到微软的msdn去下载。 完成上面3个软件的安装后还不可以动手编写代码,因为要保证mendia player 9.0要与.net框架通信,还必须注册mendia player 9.0的pia,所谓pia是"Primary interop assemblies"的缩写本人将它翻译为"原始内部汇编集",之所以要先注册它是因为com技术诞生在.net技术之前要让com和.net通信就要一个中间层来连接这两边在mendia player 9.0中使用mendia player 9.0 sdk redist目录下的wmppia.dll来注册mendia player 9.0的pia,在命令窗口中输入:[path]regasm c:WMSDKWMPSDK9 redistwmppia.dll(regasm是.net提供的pia注册程序,path是它的路径,你可以用搜索功能来找到它)。  各位别以为注册了pia就可以编程了,你还得将它添加到全局缓存中。在命令窗口中输入:[path]Gacutil /i C:WM......

阅读全文(1813) | 评论:0

vb.net常用函数(2008-08-23 09:57:00)

摘要:vb.net常用函数 开发者在线 Builder.com.cn 更新时间:2007-09-10作者:51cto.com整理  来源:51cto.com 本文关键词: VB.NET 函数 Abs(number) 取得数值的绝对值。  

Asc(String) 取得字符串表达式的第一个字符ASCII 码。  

Atn(number) 取得一个角度的反正切值。  

CallByName (object, procname, usecalltype,[args()]) 执行一个对象的方法、设定或传回对象的属性。  

CBool(expression) 转换表达式为Boolean 型态。  

CByte(expression) 转换表达式为Byte 型态。  

CChar(expression) 转换表达式为字符型态。  

CDate(expression) 转换表达式为Date 型态。  

CDbl(expression) 转换表达式为Double 型态。  

CDec(expression) 转换表达式为Decimal 型态。  

CInt(expression) 转换表达式为Integer 型态。  

CLng(expression) 转换表达式为Long 型态。  

CObj(expression) 转换表达式为Object 型态。  

CShort(expression) 转换表达式为Short 型态。  

CSng(expression) 转换表达式为Single 型态。  

CStr(expression) 转换表达式为String 型态。  

Choose (index, choice-1[, choice-2, ......

阅读全文(1466) | 评论:0

VB.NET多线程应用(2008-08-23 09:53:00)

摘要:VB.NET多线程应用 开发者在线 Builder.com.cn 更新时间:2007-11-11作者:QQ新人类 来源:yesky 本文关键词: VB.NET 多线程 应用 开发者一直要求微软为VB加入更多的多线程功能,对于VB.NET也是这样。VB6已经支持建立多线程的EXE、DLL和OCX。不过使用多线程这个词语,可能也不太确切。因此VB6仅支持运行多个单线程的单元。一个单元实际上是代码执行的空间,而单元的边界限制了代码访问任何单元以外的事物。

  VB.NET就不同了,它支持建立自由线程(free-threaded)的应用。这意味着多个线程可以访问同样一套的共享数据。本文的以下部分将讨论一下多线程的一些基本点。

  问题

  虽然VB6支持多个单线程的单元,不过它并不支持一个自由线程的模型,即不允许多个线程使用同一套数据。在许多的情况下,你需要建立一个新的线程来进行后台的处理,这样可提高应用的可用性,否则,一个长的处理就可以令程序的响应变得很慢,例如你按下表格上的一个取消按钮,却很久都没有响应。

  解决办法

  由于VB.NET使用了CLR(Common Language Runtime),从而拥有了许多的新特性,其中的一个是可以创建自由线程的应用。

  使用线程

  在VB.NET中,运用线程是很简单的。我们将在后面涉及其中的细节,现在我们首先来创建一个简单的表格,它使用一个新的线程来运行一个后台处理。第一件要做的事情是创建运行在新线程上的后台任务。以下的代码执行一个相当长的运行处理--一个无限的循环:

Private Sub BackgroundProcess()
Dim i As Integer = 1

Do While True
ListBox1.Items.Add("Iterations: " + i)
i += 1
Loop
End Sub

这段代码无限地循环,并且在每次执行时为表格上的一个列表框加入一个项目。如果你对VB.NET不熟悉的话,你将会发现这段代码和VB6的有一些区别:

  . 在声明变量Dim i As Integer = 1......

阅读全文(1537) | 评论:0

.Net Remoting中Remote Server的Port占用/释放问题(2008-08-23 09:51:00)

摘要:.Net Remoting中Remote Server的Port占用/释放问题 开发者在线 Builder.com.cn 更新时间:2008-01-28作者:冷枫 来源:CSDN 本文关键词: 释放 占用 Port remoting .net 这一问题一般出现在Console application/Windows Service承载Remote Objects时,要求Remote Server指定特定port。IIS在承载Remote Objects并不需要指定特定port,因此一般不会出现SocketException异常信息。   1. 启动承载Remote Objects的Console application,发现指定的port状态为:LISTENING。 显然Remote Server开始监听该port,可以接受Client端的请求。   2. 在关闭承载Remote Objects的Console application后,发现指定的port状态为:TIME_WAIT。   如果现在启动该Console application,就会抛出如下异常: An unhandled exception of type 'System.Runtime.Remoting.RemotingException' occurred in mscorlib.dll   Additional information: Remoting configuration failed with the exception System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Net.Sockets.SocketException: Only one usage of each socket address (protocol/network address/port) is normally permitted   SocketException异常:每一个socket address (protocol/networ......

阅读全文(1637) | 评论:0

用VS2005.NET进行三层结构应用程序的开发(2008-08-23 09:50:00)

摘要:用VS2005.NET进行三层结构应用程序的开发 开发者在线 Builder.com.cn 更新时间:2008-01-27作者:冷枫 来源:CSDN 本文关键词: 三层结构 VS2005 .net .NET 应用程序 开发 1.三层之间的关系:

三层是指:界面显示层(UI),业务逻辑层(Business),数据操作层(Data Access)

文字描述:

Clients对UI进行操作,UI调用Business进行相应的运算和处理,Business通过Data Access对Data Base进行操作。  优点: 1、增加了代码的重用。Data Access可在多个项目中公用;Business可在同一项目的不同地方使用(如某个软件B/S和C/S部分可以共用一系列的Business组件)。 2、使得软件的分层更加明晰,便于开发和维护。美工人员可以很方便地设计UI设计,并在其中调用Business给出的接口,而程序开发人员则可以专注的进行代码的编写和功能的实现。
2.Data Access的具体实现: DataAgent类型中变量和方法的说明:   private string m_strConnectionString; //连接字符串 private OleDbConnection m_objConnection; //数据库连接   public DataAgent(string strConnection) //构造方法,传入的参数为连接字符串 private void OpenDataBase() //打开数据库连接 private void #region CloseDataBase() //关闭数据库连接 public DataView GetDataView(string strSqlStat) //根据传入的连接字符串返回DataView   具体实现代码如下:        public class DataAgent      { &......

阅读全文(1913) | 评论:0

.net生成图片的缩略图的2种方法(2008-08-23 09:49:00)

摘要:.net生成图片的缩略图的2种方法 开发者在线 Builder.com.cn 更新时间:2008-02-02作者:abandonship 来源:CSDN 本文关键词: 缩略图 .net  实现方法有2个方式:  1. 使用Image的GetThumbnailImage 方法直接生成压缩图片,大概大概如此:    file://设置 原图片 对象的 EncoderParameters 对象,设置清晰度
   ImageCodecInfo ici = GetCodecInfo((string)htmimes[mFileExtName]);
   EncoderParameters parameters = new EncoderParameters(1);
   parameters.Param[0] = new EncoderParameter(Encoder.Quality,lngDefinition);    System.Drawing.Image.GetThumbnailImageAbort myCallback =new    System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);
   System.Drawing.Image myThumbnail = image.GetThumbnailImage(intNewWidth, intNewHeight,  myCallback, IntPtr.Zero);
  myThumbnail.Save(txtNewPath, ici, parameters);  2. 使用Graphics 重新绘制图象    ImageCodecInfo ici = GetCodecInfo((string)htmimes[mFileExtName]);
   EncoderParameters parameters = new EncoderParameters(1);

阅读全文(1578) | 评论:0

正则表达式的几个有用的例子(2008-08-18 20:15:00)

摘要: Expression ISBN(-1(?:(0)|3))?:?\x20+(?(1)(?(2)(?:(?=.{13}$)\d{1,5}([ -])\d{1,7}\3\d{1,6}\3(?:\d|x)$)|(?:(?=.{17}$)97(?:8|9)([ -])\d{1,5}\4\d{1,7}\4\d{1,6}\4\d$))|(?(.{13}$)(?:\d{1,5}([ -])\d{1,7}\5\d{1,6}\5(?:\d|x)$)|(?:(?=.{17}$)97(?:8|9)([ -])\d{1,5}\6\d{1,7}\6\d{1,6}\6\d$))) Description This regex match both the old 10 digit ISBNs and the new 13 digit ISBNs. The ISBN number must be prefixed by the literal text "ISBN:" or "ISBN-10:" or "ISBN-13:". The colon is optional. Naturally an ISBN prefixed by "ISBN-10" must be a 10 digit ISBN. One prefixed by "ISBN-13" must be 13 digits. If prefixed only by "ISBN:" it can be either 10 or 13 digits. This does not evaluate whether the check digit is valid for the given ISBN. The structure of an ISBN is discribed here http://www.isbn.org/standards/home/isbn/international/html/usm4.htm (this is for 10 digit) Matches ISBN-13: 978-1-4028-9462-6 Non-Matches ISBN: 1284233-2-1-1   Title Test Details Validate ......

阅读全文(1899) | 评论:0

正则表达式中浮点数的表示(2008-08-17 20:38:00)

摘要:"\s*[+-]?\d+(\.\d+)?([eE][+-]?\d)?\b(?!\.)\s*" "\s*[+-]?\d+(\.\d+)?([eE][+-]?\d)?\b(?!\.)\s*" "\s*[+-]?\d+(\.\d+)?([eE][+-]?\d)?\b(?!\.)\s*" "\s*[+-]?\d+(\.\d+)?([eE][+-]?\d)?\b(?!\.)\s*" \s*[+-]?(?<Mantissa>\d+\.?\d*|\d*\.?\d+)(?<Exponent>(E|e)[+\-\x20]?\d+)?\s* 上面任何一个都可以表示浮点数......

阅读全文(2169) | 评论:0

日期的正则表达式-有关闰年(2008-08-17 18:38:00)

摘要: Expression (((0[13578]|10|12)([-./])(0[1-9]|[12][0-9]|3[01])([-./])(\d{4}))|((0[469]|11)([-./])([0][1-9]|[12][0-9]|30)([-./])(\d{4}))|((2)([-./])(0[1-9]|1[0-9]|2[0-8])([-./])(\d{4}))|((2)(\.|-|\/)(29)([-./])([02468][048]00))|((2)([-./])(29)([-./])([13579][26]00))|((2)([-./])(29)([-./])([0-9][0-9][0][48]))|((2)([-./])(29)([-./])([0-9][0-9][2468][048]))|((2)([-./])(29)([-./])([0-9][0-9][13579][26]))) Description My meager attempt at a date validator with leap years using a strict mm/dd/yyyy format. Matches 02/29/2084 | 01/31/2000 | 11/30/2000 Non-Matches 02/29/2083 | 11/31/2000 | 01/32/2000   Expression ^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$ Description Thi......

阅读全文(2366) | 评论:0