社区
VB
帖子详情
窗体使用new关键字与不用的区别
JAVA_APE
2019-04-25 12:35:44
vb.net中 Dim form As FormXX
form = new FormXX 和form = FormXX有什么区别,求大神回答!!
...全文
75
6
打赏
收藏
窗体使用new关键字与不用的区别
vb.net中 Dim form As FormXX form = new FormXX 和form = FormXX有什么区别,求大神回答!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hztltgg
2019-04-25
打赏
举报
回复
和new没什么关系吧, form = FormXX 相当于 My.MyProject.Forms.FormXX ,这个My.MyProject.Forms命名空间下vb.net自动给你生成了一个FormXX实例,就是为了兼容vb6的写法,vb6没有完全面向对象,创建一个窗体就是一个实例,很多老代码没有new来处理的。之前vb.net早期版本是一定要加new的,后来未来兼容就在My.MyProject.Forms里自动加了实例。现在为了和c#统一,还是用new的语法吧。
exception92
2019-04-25
打赏
举报
回复
new 关键字有几种使用方式,简单查询一下了。
exception92
2019-04-25
打赏
举报
回复
new 关键字有几种使用方式,简单查询一下了。
exception92
2019-04-25
打赏
举报
回复
区别在于form引用的是否是内存地址上一个同一引用。
hztltgg
2019-04-25
打赏
举报
回复
但为了兼容以前的
hztltgg
2019-04-25
打赏
举报
回复
按说应该都要有new的,但未来兼容以前的,所以默认自动有一个和类名一样的实例,没用new就是指向了那个默认实例。
能拖动无边框
窗体
的dll文件
///
/// 拖动无边框
窗体
///
///
窗体
句柄 public void DragFrm(IntPtr hwdn);
使用
方法: 第一步:将文件导入你的项目中(建议将文件和你的工程项目在一起,便于移植),导入成功后,你会在项目的引用中看到NoFormDLL文件,如果没有看到说明没有导入成功,原因呢,在这里就不说了,自己研究研究。 第二步:引入命名空间(using NoFormDLL;) 第三步:引入命名空间成功后,实例化DragNoForm对象DragNoForm dnf =
new
DragNoForm();最好将此对象设为全局的,便于关闭的窗口的时候
使用
) 第四步:也是最后一步了,根据对象名调用里面的相应方法就ok了 在说明点,这里不能
使用
Dllimport
关键字
来引入外部的动态链接库,原因是该文件没有提供静态的入口点,是找不到方法的,所以是没有效果的
VB6.0动态加载ActiveX控件
熟悉VB的朋友对
使用
ActiveX控件一定不会陌生,众多控件极大地方便了编程,但唯一的缺陷是不能动态加载控件,必须在设计时通过引用,将控件放置在
窗体
上。VB6.0已能够解决该问题,只是帮助中没有明确说明,并且没有描述到一些关键功能,由于以前的版本中可以动态创建进程外服务:如果对象是外部可创建的,可在 Set 语句中用
New
关键字
、CreateObject 或 GetObject 从部件外面将对象引用赋予变量。如果对象是从属对象,则需
使用
高层对象的方法,在 Set 语句中指定一个对象引用
Visual C# 2010程序设计教程(教程PPT+源代码)
基本信息 书名:高等学校计算机应用规划教材:Visual C# 2010程序设计教程 作者: 陈建伟 出版社: 清华大学出版社 页码:326 出版日期:2012-06-01 内容简介 《高等学校计算机应用规划教材:Visual C# 2010程序设计教程》详细介绍了Visual C# 2010程序设计的基础知识、基本方法和应用技巧,共分14章,主要内容包括.NET平台与Visual Studio 2010开发环境、C#语言基础及面向对象程序设计、C#程序设计、C# Web程序设计、C#泛型编程、C#数据库程序设计及ADO.NET等相关知识,并在最后讲解了运用C#处理文件和进行LINQ语言集成查询的内容。 本书的讲述由浅入深、循序渐进,并针对各章知识点附以大量的示例程序和习题。通过本书的学习,读者可以逐步掌握C#程序设计。 本书难度适中,实例丰富,可操作性强,可作为高等学校计算机相关专业的教材或参考用书,也可供广大程序员参考。 目录 第1章.NET平台与Visual Studio开发工具 1.1 Microsoft.NET平台 1.1.1 .NET Framework 4.0概述 1.1.2 理解命名空间 1.2 Visual Studio 2010简介 1.2.1 Visual Studio 2010开发环境概览 1.2.2 菜单栏 1.2.3 工具栏 1.2.4 “属性”及“解决方案资源管理器”面板 1.2.5 其他面板 1.2.6 Visual Studio 2010的新特性 1.3 创建控制台应用程序 1.4 本章小结 1.5 习题 第2章 Visual C# 2010语法基础 2.1 C#语言概述 2.2 C#基础元素 2.2.1 语句 2.2.2 标识符与
关键字
2.3 变量 2.3.1 变量的命名 2.3.2 变量的声明和赋值 2.4 数据类型 2.4.1 简单类型 2.4.2 结构类型 2.4.3 枚举类型 2.4.4 引用类型 2.4.5 装箱与拆箱 2.4.6 数据类型的转换 2.5 运算符与表达式 2.5.1 赋值运算符与表达式 2.5.2 关系运算符与表达式 2.5.3 逻辑运算符与表达式 2.5.4 其他运算符与表达式 2.5.5 运算符的优先级 2.6 Visual C# 2010的新特性 2.6.1 大整数类型(Biginteger) 2.6.2 动态数据类型 2.6.3 命名参数和可选参数 2.7 本章小结 2.8 上机练习 2.9 习题 第3章 程序流程控制 3.1 选择结构程序设计 3.1.1 if语句 3.1.2 switch语句 3.2 循环结构程序设计 3.2.1 for语句 3.2.2 for each语句 3.2.3 while语句 3.2.4 do---while语句 3.2.5 跳出循环 3.3 异常处理结构 3.3.1 异常的产生 3.3.2 处理异常 3.4 本章小结 3.5 上机练习 3.6 习题 第4章 数组与集合 4.1 数组 4.1.1 数组的声明 4.1.2 -维数组的
使用
4.1.3 多维数组的
使用
4.2 集合 4.2.1 集合的定义 4.2.2 集合的
使用
4.2.3 常用系统预定义的集合类 4.3 本章小结 4.4 上机练习 4.5 习题 第5章 C#面向对象程序设计基础 5.1 面向对象程序设计概述 5.2 类与对象 5.2.1 类与对象概述 5.2.2 面向对象程序设计相关概念 5.2.3 类的声明与System Object类 5.2.4 对象的声明与类的实例化 5.2.5 类成员 5.2.6 类成员的访问限制 5.2.7 this
关键字
5.3 构造函数与析构函数 5.3.1 构造函数 5.3.2 析构函数 5.4 本章小结 5.5 上机练习 5.6 习题 第6章 域、属性与事件 6.1 域 6.1.1 域的初始化 6.1.2 只读域与readonly
关键字
6.2 属性 6.2.1 属性的声明 6.2.2 属性的访问 6.3 事件 6.3.1 委托 6.3.2 事件的声明 6.3.3 事件的订阅与取消 6.4 本章小结 6.5 上机练习 6.6 习题 第7章 方法 7.1 方法的声明 7.2 方法的参数 7.2.1 值类型参数传递 7.2.2 引用类型参数传递 7.2.3 输出类型参数传递 7.2.4 数组类型参数传递 7.3 静态方法 7.4 方法的重载 7.5 外部方法 7.6 操作符重载 7.6.1 一元操作符的重载 7.6.2 二元操作符的重载 7.7 本章小结 7.8 上机练习 7.9 习题 第8章 继承与多态 8.1 什么是继承 8.2
使用
继承机制 8.2.1 基类和派生类 8.2.2 bas
VB.Net常用语法
VB.Net常用语法 一:Try………Catch………finally………end try 捕获错误 把一个可能出错的语句放在try后面,如果出错,执行catch语句, catch可以有多个,第一个catch不能捕获的错误,将被下一个catch语句 所捕获。在所有的处理结束后,执行finally语句。 在一个try………end try 过程中可以
使用
catch与finally两个中的一 个,或者两个一起用, 二:Protected, private, Public 封装控制 这三个
关键字
一般放在语句最前面,而会置于overloads与Overrides的 后面 public是工程级别外部访问 protected是本族级别以下内部访问 private是不提供非本地访问 三:ByVal sender As Object, ByVal e As System.EventArgs 这是最赏用事件传递参数。被封装于两个对象内, 如果你要传递相应的参数,要在这两个对象里面找,如当前鼠标位置为 e.X e.Y。在VB.Net中有些事件是要自已动手写的, 如
窗体
鼠标过程,一般加上这个参数在后面的括号内就解决了。 四:重载语法Overloads 如:class class1 public strtem as string overloads public sub subx()重载subx(A状态) strtem=”3” end sub overloads public sub subx(x as string) 重载subx(B状 态) strtem=x end sub end class 如果你如果调用subx()中间没有参数,则VB自动调用重载subx(A状 态), overloads public sub subx()重载subx(A状态) strtem=”3” end sub 结果就是strtem=”3” 如果你这样调用,subx(“这是一个不同的结果”),则VB自动调用重 载subx(B状态) overloads public sub subx(x as string) 重载subx(B状 态) strtem=x end sub 结果就是 strtem=“这是一个不同的结果” 您可以在函数中调用,包括在API中(当然VB.Net不再
使用
winAPI). 甚至一些至关紧要的过程也不例外:如
new
过程(此方法王国荣文章中 有介绍) 如: class class1 Overloads Public Sub
New
() 。。。。。。 。。。。。。 end sub Overloads Public Sub
New
(s as string) 。。。。。。 。。。。。。 end sub end class 同样有两种调用的方法,如dim as as class1=
new
class 调用前面 一个无参数的
new
过程, 而dim asb as class1=
new
class(“string”)调用第二个
new
过程. 切记,如果一个过程或一个函数只有一种状态,不能这样运用。如果您试 图
使用
overloads
关键字
,则VB.Net会出现错误的提示要求你移去 overloads 五:Overrides改写 如常见的dispose过程: Overrides Public Sub Dispose() MyBase.Dispose components.Dispose End Sub Overrides表示完全的改写父类提供的过程与函数 不过要记住
使用
改写的前提是在父类的同一过程或函数的前面也
使用
了 overrides
关键字
六:mybase.
new
与mybase.dispose ublic Sub
New
() MyBase.
New
Form1 = Me InitializeComponent End Sub Overrides Public Sub Dispose() ' MyBase.Dispose components.Dispose End Sub 这两个过程是任何一个新建工程都会有的,mybase.
new
是调用当前类的 父类的
new
过程,同样你也可以加上参数配合父类的重载
New
过程。如: Overloads Public Sub
New
() MyBase.
New
() End Sub Overloads Public Sub
New
(string) MyBase.
New
(string) End Sub 七:Structure构造 自定义类型,如: Structure Type1 Dim x as y Dim a as b 。。。。。。。 end structure 这个取代VB6中的
使用
type………end type方式自定义类型的方法。 八:return返回值 function functionname() return X。。。。。。 end funtion 他的作用与下面一样: function functionname() functionname = X。。。。。。 end funtion
HGHdll 2.0
HGHdll
使用
说明 HGHdll.dll是胡广辉为了C#实训课程而开发的,主要有以下功能。 一、注册热键与取消热键 类HotKeys 参考代码 (1) HotKeys h =
new
HotKeys(); (2) //调用热键的
窗体
需要重写以下方法 protected override void WndProc(ref Message m) { //窗口消息处理函数 h.ProcessHotKey(m); base.WndProc(ref m); } (3) // 注册热键 可在
窗体
的Load事件中进行 //这里注册了Ctrl+Alt+E 快捷键,当然热键组合可以改写 h.Regist(this.Handle, (int)HotKeys.HotkeyModifiers.Control + (int)HotKeys.HotkeyModifiers.Alt, Keys.E, h.CallBack); MessageBox.Show("注册成功"); 或者代码如下,组合固定为Ctrl+Alt+E h.CAE(this); (4) // 取消热键 可在
窗体
的FormClosing事件中进行 h.UnRegist(this.Handle, h.CallBack); MessageBox.Show("卸载成功"); 或者代码如下 h.qx(this);//取消热键 [说明:HotKeys类h.CallBack是截屏] 二、截屏
窗体
FrmCapture frmC =
new
FrmCapture(); frmC.Show(); 三、移动与改变控件大小的类BarcodeControl BarcodeControl barcode =
new
BarcodeControl(控件); 四、快捷语
窗体
类fw,也可用于管理“代码段” //以下是树控件双击事件中调用快捷语
窗体
,节点属性Text为服务类型,Name属性为数据库名称(不含拓展名) private void treeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) { if (fw.isthisform(e.Node.Text)) { // access数据库的连接字符串Main_Access.DataPath为数据库路径, //e.Node.Name.ToString().Trim()为数据库名称 string cons = "Provider=Microsoft.ACE.OLEDB.12.0 ; Data Source=" + Main_Access.DataPath + e.Node.Name.ToString().Trim() + @".accdb; Jet OLEDB:Database Password=iamhgh "; (
new
fw(e.Node.Text, cons)).Show(); } } 注:fw
窗体
类
使用
说明 (1) ///fw对象在构造时,传递相关服务类型的数据,与连接字符串 public fw(string fwlx, string Connectionstring) {……} (2)// 判断此类型的助词
窗体
相同的服务类型的实例是否运行,在创建实例前时行判断,没有运行时返回true. public static bool isthisform( string lx) {……} (3)// access数据库操作类,与数据库kjfw01、kjfw02...表tc001相关, 此表有四个字段FatherNodeKey,NodeKey,NodeText,NodeLevel // 表名tc001及其字段名不变,FatherNodeKey为父节点名(存于tag),文本类型; NodeKey为本节点名,
关键字
,文本类型;NodeText为备注类型; // NodeLevel,为数字类型,存放节点的level 五、类safety (1) // 获取文件的md5值,即信息摘要, 返回16进制的字符串 。 public static string GetMD5HashFromFile(string fileName) {……} 调用代码举例如下: MessageBox.Show(safety.GetMD5HashFromFile(@"F:\BaiduNetdiskDownload\关于阿里巴巴.qlv")); 六、对richtextbox的十多种常用编辑,其中支持中文名称文件的超链接 (1)直接调用代码 (
new
richtextboxGj(null)).Show(); (2)作为fw
窗体
共用的富文本编辑
窗体
。
VB
16,553
社区成员
110,527
社区内容
发帖
与我相关
我的任务
VB
VB技术相关讨论,主要为经典vb,即VB6.0
复制链接
扫一扫
分享
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章