欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    VB编程语言入门学习Word格式.docx

    • 资源ID:7062922       资源大小:35.50KB        全文页数:30页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    VB编程语言入门学习Word格式.docx

    1、 Command2PrivateSubCommand1_Click()Me.HideForm2.ShowEndSubPrivateSubCommand2_Click()Form1.ShowEndSub所以,我毫不犹豫地在VS.NET中内开端我的榜首个VB.NET的项 目了。首要,新建了一个VB.NET的Windows应用程序项目,主动生成了一个 Windows Form:Form1,在其上参加一个按钮控件:Button1;然后,增加了一个 Windows Form:Form2,在其上参加了一个按钮控件:Button2。在描绘窗口 双击Button1后,编译器会切换到代码窗口的Button1的单

    2、击呼应代码中。在代码段中故计重施,当我想写Form2.Show时,在Form2之后打个点,呈现的智能 感知菜单中,却没有Show这一办法。真新鲜,这怎样能够?莫非VB.NET改动有这 么大。我昂首看了看站在我身旁的大李。大李马上面露浅笑,看来是正中 他的骗局。他手指向屏幕,点了点Form1中的代码的最初处:PublicClassForm1InheritsSystem.Windows.Forms.Form不笨的我马上就知道 了,如今的Form1是一个从System.Windows.Forms.Form承继下来的类了,调用的 时分当然需求先实例化了,哈,也不难嘛。马上动手:PrivateSubBu

    3、tton1_Click(ByValsenderAsSystem.Object,_ByValeAsSystem.EventArgs)HandlesButton1.ClickMe.Hide()Dimfrm2AsNewForm2()实例化Form2类,得到一个目标frm2.Show()EndSub在Form2的Button2的单击工作中也相似地写了一段代码,运转 一下,和VB6的效果差不多了。正在得意中,大李走过来,在我的Form1中增加了 一个文本框textbox1,清空其间的文字。然后运转了一下程序。在运转中,他在 文本框里写了几个字:“Henry的著作”,然后点击Button1切换到 Form

    4、2,接着点击Button2,从头呈现的Form1的文本框中却变成了空白。“这”我一时语塞,慢慢地想起点啥, “大概是程序经过New布局办法,每次点击按钮都会从头实例化一次Form类 吧?所以每次从头呈现的窗体都不是从前从前呈现过的那个。那从前的窗体也就 失踪了,调不出来了。”“失踪?”大李不由笑了起来 ,“对呀,失踪在内存中。你每实例化一次,系统就会拓荒一块内存给一个 目标,并会有相应的线程对其进行操控与办理。若是作为进程中主线程的榜首个 Form1被Hide起来,没有封闭它,那么即便你封闭后来新创立的一切窗体,进程也 不会被间断。那么,用啥办法去找回你失踪的窗体,或许说怎么就只运用一 个目标

    5、,不再每次实例化呢?“大局目标!”我脱口 而出,感受到大李模棱两可,只好硬着头皮持续说:“运用大局变量,使 Form1与Form2只实例化一次,这样就能够了。然后,在大李的注 视下,我开端施行我的方案:再创立一个模块文件:module1.vb,并且同 时在:处理方案办理器-项目名.sln -右点鼠标 -特点 -通用属 性-惯例-发动目标 -改为Module1。让程序发动后先运转Module1中的 代码指令,然后编写代码如下:Module1.vbModuleModule1Publicfrm1AsNewForm1()界说Form1的共用变量实例Publicfrm2AsNewForm2()界说For

    6、m1的共用变量实例SubMain()Application.Run(frm1)这句话标明程序发动了modele后,会接下来运转frm1,即form1的一个实例。主线程就变成运转期的frm1了。EndSubEndModule这样一来,frm1、frm2就变成大局变量了,在Button1与 Button2的单击呼应代码中只需写:frm1.show就能够了。再运转程序,可 以了,“Henry的著作”一向都会保持在Form1中的文本框里。大李老哥没等我欢笑起来就再次出手,在frm1躲藏起来的时分,封闭了Form2窗口 (frm2实例),桌面上啥窗体都没有了,进程又一次被堕入在无法间断的状况 下。My

    7、God,面向目标的VB.NET,爱你莫非真的这么难VB.NET之旅(二)布局与析构在Form1窗体的实例被躲藏的时分,封闭了Form2窗体的实例,使我失去了 对主线程的人工操控,进程无法正常封闭了。只好运用Ctrl+Alt+Del调出系统进 程办理器,强行间断了该进程。为了防止昂首看见大李的笑脸,我只好垂头想办 法。有了,我只需能截获Form2实例封闭的音讯,不就能够再调出躲藏的 主线程窗体了吗?在Form2的基类事件(Base Class Event)中重载Closing办法进 行处置:PrivateSubForm2_Closing(ByValsenderAsObject,ByValeAs_

    8、System.ComponentModel.CancelEventArgs)HandlesMyBase.Closingfrm1.Show()EndSub哈,很便利,我封闭了Form2窗体的实例后,被躲藏 的那个frm1又呈现了。“嗯,”大李总算发话了,“你 再点击一下Form1窗体上的Button1试试。我背心一凉,隐约感受 大李等待着的即是这个时分。无法的我还只能照他说的去做。公然,弹出一个出错窗口.“你封闭了frm2这个Form2的实例,也就完毕了这个目标的生存期 ,”大李看来是蓄势已久了,“这即是犯错提示中所说的无法 拜访名为Form2的已处置目标。当咱们封闭一个窗口的时分,会宣布一个

    9、终止呼应,并将该窗口目标,就象上面界说的frm2,送入停止行列,公共言语运 行库的废物收回器盯梢着这个目标的生存期,此刻就会调用此目标基类,比方 Form2的Dispose办法,用于毁掉目标并收回资源。所以 ”“所以我只需判别一下frm2是不是被毁掉就 行了,若是毁掉了,我就再布局一个实例不就行了?”我恍然大悟道。大李首次浅笑地址了答应说:“用frm2.IsDisposed就能够来判别 了。我心照不宣地写道:ByValeAsSystem.EventArgs)HandlesButton1.ClickIffrm2IsNothingOrfrm2.IsDisposedThen判别目标是不是被毁掉frm

    10、2=NewForm2()EndIfMe.Hide()frm2.Show()EndSub这下完善多了,两个窗体之间的切换也不会有这么多 别扭的疑问了。我转过身,看到大李现已找了把椅子坐在我的身边。“你来说说,对VB.NET的窗体实例的创立与毁掉的进程吧。 ”我整理了一下杂乱的思路,长吁了一口气,开端说:“一个 窗体类,比方Form1类是经过调用其基类,就是Form类的New办法来创立实例、 Dispose办法来毁掉实例。“没错。”大李边说话,一 边在我的程序中点击开来被代码窗口主动折叠起来的 Windows 窗体描绘器生成 的代码 :PublicSubNew()MyBase.New()该调用是W

    11、indows窗体描绘器所必需的。InitializeComponent()在InitializeComponent()调用之后增加任何初始化窗体重写处置以整理组件列表。ProtectedOverloadsOverridesSubDispose(ByValdisposingAsBoolean)IfdisposingThenIfNot(componentsIsNothing)Thencomponents.Dispose()EndIfMyBase.Dispose(disposing)EndSub大李开端说明道:“MyBase 关键词的行动相似 于引证类的当时实例的基类的目标变量MyBase 常用于拜

    12、访在派生类中被重写或 躲藏的基类成员。在这段代码中,MyBase指的当然即是System.Windows.Forms.Form类了。布局目标时用的New办法是显式调用的,没什 么好说明的。但析构的办法值得一说。他看了我一想,持续说: “Form.Dispose办法是重写自Control.Dispose办法的,那么 Control.Dispose办法的含义又是怎么的?它的效果即是:开释由Control占用 的非保管资源,还能够另外再开释保管资源。当它参数中的disposing 为 true 则开释保管资源和非保管资源;为 false 则仅开释非保管资源。Form类的 disposing为true

    13、。在封闭窗体时主动调用dispose的功用是得益于.net的公共语 言运转库,运行库主动处置目标规划和办理对目标的引证,当不再运用目标时释 放它们。其生存期以这种办法来办理的目标称为保管数据。主动内存办理消除了 内存走漏以及其他一些常见的编程过错。任何类型的Dispose 办法都大概开释它 具有的一切资源。它还大概经过调用其父类型的 Dispose 办法开释其基类型具有 的一切资源。该父类型的 Dispose 办法大概开释它具有的一切资源并一样也调用 其父类型的Dispose 办法,从而在整个基类型层次布局中传达该办法。要保证始 终正确地整理资源,Dispose 办法大概能够被屡次安全调用而不

    14、引发任何反常。“可是,若是系统疑问或应用程序调用上出了疑问,不能正 常调用Dispose怎样办?”我想起了啥,问道。“若是经过 Dispose还开释不洁净或没有调用Dispose,系统的废物收回器会调用目标的 Finalize 办法进行铲除。由于履行 Finalize 办法会大大减损功用,所以咱们不 会一开端就用它去进行铲除作业。大李略微说明了一下。我总算 想起了一个重要的疑问:“若是总是在模块中界说的大局变量来处置,由于 拜访规模太大,会不会有安全性的疑问?“当然,咱们能够 试试其他的处理方案。”总是有备而言。VB.NET之旅(三)同享成员一起对VB.NET充满了猎奇与晓得的巴望。“除了大局

    15、变量外,还有啥好办法吗?”我迫不急待地想知 道成果。“能够运用同享成员。”大李依然是那么淡漠然, “VB.NET如今是撑持真实的面向目标编程,能够承继、运用多态、同享成员 和静态成员。同享成员即是在一切类和所界说派生类的实例之间同享的办法、属性、字段和工作。一切运用类创立的目标都能够拜访一样的数据、同享完结进程 ,并且收到一样的激起工作。“这么好呀,那怎样完结呢? ”我好象又回到了课堂上,满脑都是无知的符号。“很简略, 在Public或Private成员润饰符后加上Shared关键词即可了。Shared关键词指示一 个或多个被声明的编程元素将被同享。同享元素不关联于某类或布局的特定实例 。能够

    16、经过运用类名或布局称号或许类或布局的特定实例的变量称号限制同享元 从来拜访它们。你来看这段代码PublicClassShareClassPublicSharedSharedValueAsStringPublicSharedSubShareMethod()MsgBox(Thisisasharedmethod.)EndSubEndClassSubTestShared()DimShared1AsNewShareClass()创立了类的一个实例.DimShared2AsNewShareClass()创立了类的第二个实例.Shared1.SharedValue=ShareValue1给同享字段赋值.Sh

    17、ared2.SharedValue=ShareValue2重写同享字段的值ShareClass.ShareMethod()不必创立实例就能够调用类的办法.EndSub“有两个关键,一个是同享成员若是是办法或特点,我 们不必创立实例就能够直接用类名.共享成员的办法进行调用;第 二个关键,同享字段是仅有的,你来说说运转后Shared1.SharesValue的值是多少 ?我脑筋里转了两圈,已然说同享字段是仅有的,那么 Shared1.SharedValue和Shared2.SharedValue其实对应的是同一个同享字段,所 以么,我马上大声说:“是Share Value 2。由于被Shared2

    18、.SharedValue修 改了。“没错!”大李又一次绽放了会意的浅笑,真 是对我的最高奖励。“那你还不着手修正一下你的程序?好 !说做就做。已然同享特点在其调用的时分是不必实例化的,那么我最佳能凭借 布局一个同享特点来完结。并且要能够判别其实例是不是存在或是不是被毁掉,若是 不存在就布局一个新的窗体实例,若是存在就对其进行调用:PrivateSharedm_vb6FormDefInstanceAsForm1PublicSharedPropertyDefInstance()AsForm1GetIfm_vb6FormDefInstanceIsNothingOrElse_m_vb6FormDefI

    19、nstance.IsDisposedThen判别窗体实例是不是存在m_vb6FormDefInstance=NewForm1()EndIfDefInstance=m_vb6FormDefInstanceEndGetSet(ByValValueAsForm1)m_vb6FormDefInstance=ValueEndSetEndProperty在Form2中也参加相似的代码,只不过把Form1改为Form2 。调用它是如此的便利:/Form1中的代码PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArg

    20、s)HandlesButton1.ClickMe.Hide()Form2.DefInstance.Show()EndSub/Form2中的代码PrivateSubButton1_Click(ByValsenderAs_System.Object,ByValeAsSystem.EventArgs)_Form1.DefInstance.Show()EndSubPrivateSubForm2_Closing(ByValsenderAsObject,_ByValeAsSystem.ComponentModel.CancelEventArgs)_HandlesMyBase.ClosingEndSub赶忙

    21、运转一下,不对呀,榜首个窗体里文本框改为 “Henry的著作”后,再切换仍是不见了?我疑问地昂首看了看大李。“你再好好想想,首次发动的是啥?”大李模糊地说了一 句。“首次发动的是作为主线程的Form1窗体呀!”我嘟啷 着说。“那么Form1.DefInstance在哪呢?”大李这句话真是 吵醒梦中人呀!我马上着手:ModuleModule1SubMain()Application.Run(Form1.DefInstance)EndModule并把Module1设为发动项目。运转运转哈 哈,一切都满意!我开端喜爱上VB.NET了。VB.NET之旅(四)类和布局刚上班,就被大李找去了。“Henry

    22、,昨日对窗体的操作给你最大的领会 是啥?“当然有领会,最深的形象即是VB.NET中类是无所 不在了,连窗体都变成了一个类。”我深有感受地说“没错 ,类是咱们用来布局VB.NET应用程序时的最基本的编程布局了。你也学习过最基 本的面向目标编程了,那么你能告诉我,布局与类有啥相似之处与不一样之处吗 ?“好的。”我口中答复着,心里仍是有点不以为然 ,“布局和类,都是对成员的封装办法,可是类能够撑持承继 ”大李一边点着头,一边听我说,听到我结尾支 吾着没了声响才抬起头“还有呢?“没了。”我 这时才开端心中发慌。“呵呵,一样之处我想你心中仍是知道的, 它们都富含成员,包括布局函数、办法、特点、字段、常量

    23、、枚举和工作。都可 以完结接口,都有同享的布局函数。“对不住,结尾那一句 ,都有布局函数是啥意思?布局的布局函数我从来没有自个界说过。大李马上写下了这一段代码:StructureSHenryPublicx,yAsIntegerPublicSubNew(ByValxAsInteger,ByValyAsInteger)Me.x=xMe.y=yEndStructureSubmain()DimH1AsSHenry=NewSHenry()DimH2AsSHenry=NewSHenry(2,1)EndSub“真的呢,能够完结布局的布局函数!”我还一向 没有注意过这个疑问。“可是,你只界说过一个带参数的布局

    24、函数,H2的实 例化我是知道的,可是H1怎样也能经过编译器检测呢?”其实我心中更想问 的是布局怎样也能实例化成目标,那和类真的很象呀。“缘由么, ”大李推了推眼镜,“每个布局都隐式地具有 Public 无参数实例构 造函数,该布局函数产生布局的默许值。所以你平常不写布局函数,也一样能够 New出一个布局来,对吧?事实上,咱们反而在布局类型声明中不行能声明无参数 实例布局函数。只能声明参数化实例布局函数。“都能够用new来实例化,布局和类在内存分配上莫非也是 一样的吗?”这个疑问我一向挺不知道,正巧借这个论题问一下。“在这上面,不一样可就大了。”看到大李满面笑容的姿态,我 就晓得问到点子上了,马上摆开姿势,作仔细倾听状。“简略来说 ,布局是值类型,而类是引证类型。因而,布局运用仓库分配,类运用堆分配。看到我苍茫的双眼,大李笑了笑,在电脑上飞快地写了个示例:ClassCHenryPubliczAsInteger=0能对非静态成员初始化也是一个差异EndClassDimH1AsSHenry=NewSHenry(0,2)赋给H1.x=0DimH2AsSHenry=H1H2.x=26DimR1AsNewCHenry()R1.z也是等于0DimR2AsCHenry=R1R2.z=26Console.WriteLine(H1.x=&H1.x&,H2.x=&H2.x)Console.WriteL


    注意事项

    本文(VB编程语言入门学习Word格式.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开