Vb.Net问题集

问题

Vb.Net问题集
我来谈一个自已不太懂的东西实在是不明智的,实在是没有人来谈,一个人默默的钻研总是很难有所成就的。在网上打入一个VB6的命题,会找到无数的解决方案。.VB7外国已经出了好几本很好的书,在国内总有些人不屑这个beta版。这篇拙作也只算一个”Beta”,”bug”肯定不少,看了别生气,且作铺路石,且作铺路石。

一.VB7中调用不共享的方法,函数:

这个问题我在论坛发了好几天帖子,没人愿意回答。只好求助一些英文的例程。

有了结果,这个实在是很简单。对于VB7也相当重要。因为在VB7中包括了几乎

所有API,甚至于更强大的功能。有一些是可以很简单的调用,如:

1, 设置窗体的透明:Form1.Opacity = 0.89(可以设置为0.xx,Opacity的意思是不透明程度)

2, 展开Region " Windows Form Designer generated code "前面的+号你可以看到:

Me.Text = "Form1" ‘设置窗体的标题(VB7中以text代替caption)

Me.newform2.Location = New System.Drawing.Point (6, 14) ‘

设置窗体的位置坐标。

Me.BorderStyle = System.WinForms.FormBorderStyle.None

设置窗体的外观状态

Me.BackgroundImage = CType(resources.GetObject("$this.BackgroundImage"), System.Drawing.Image)。设置背景图片

Me.ShowInTaskbar = False

设置是否出现在任务栏

Me.ClientSize = New System.Drawing.Size(536, 408)

设置窗体尺寸。

VB不提倡直接一修改Region " Windows Form Designer generated code ",

你应该在属性框调节它们,但是利用这个原理,我们可以在LOAD事件中加入一些

代码。

例如:dim fhwnd1=integer:( “:”是分行的作用) dim f1 as system.winforms.form

然后定义f1的形状,

取得句柄,fhwnd1=f1.handle

同理取得名柄fhwnd2

拼合两个窗体,很容易一生成不规则窗体

当然winforms类的方法绝对不止这些,这只是最简单的了。

3:获取一个图片的信息:form1.BackgroundImage.Width(图片的宽度)

form1.BackgroundImage.Height(图片的高度)

4.操作一个文件:Dim filesam as System.IO.File = new System.IO.File ("sam.txt")

filesam.Delete,删除文件

filesam.Copy()

filesam.CopyTo()

filesam.Create()

filesam.CreateText()

等等。这些只要看一下大概就知道是什么作用了,不再需要input,output了

所以我建议不要使用namespace(族名,或译为名称空间,这里的空间实际上是一个类的组合。所以我称为族名),这样打入一个族名,打点,他的子类就会以提示方式列出。

在C#中使用using namespace VB中使用Imports namespace作用是一样的。

现在的问题是有一些很重要的方法不会出现在子类的提示列表中(查一下class members)。这表示他是不共享的。

首先你应该在工程中调用他,而不要在模块中,要建立一个函数过程。要声明一个新的对象,而不要直接地使用,如:

Public Function GetPixel(ByVal x As Integer, ByVal y As Integer) As system.Drawing.Color

Dim BM As System.Drawing.Bitmap ,声明一个对象

bm = form1.BackgroundImage(BackgroundImage等同于vb6中的picture)

GETPIXEL = BM.GetPixel(X, Y)

注意这里没有使用return关键字返回值,是基于例程的用法。

End Function

(有没有发现vb7的基本语法变化并不是很大,不象人们传说的可怕)

(WindowsMe因为改变太小而被人骂,VB7又因为改变太大被人骂,实在令人感慨)

然后: Private Sub Form_Load()

Call SetRgn

Dim STRTEMP As String

Dim pixcolor As System.Drawing.Color

pixcolor = GetPixel(1, 1)

STRTEMP = PIXCOLOR.ToString

Stop ‘在中断的一方,移动鼠标停在STRTEMP变量上,可以看到返回了一个像素的RGB

End Sub

二.窗体之间的数据传输,

有时候我们想按下form1的BUTTON,改变form2的textbox.text。这在vb6中是很简单的,在写成form2.textbox.text=”xxxxx”的就行了,在vb7中却不能这样使用,这样有些麻烦,但却有利于封装性的产生。在大型的软件工程中,不至于因为类的相互紧密作用,导致调试的困难。例如一个窗体无法unload,我们无法确定是哪一个类的引用不当造成。

你可以写一个接口过程就象大部分丛vb6升级到vb7的软件那样。如:

Private Shared m_vb6FormDefInstance As form1

Public Shared Property DefInstance() As form1

Get

If m_vb6FormDefInstance Is Nothing Then

m_vb6FormDefInstance = New form1()

End If

DefInstance = m_vb6FormDefInstance

End Get

Set

m_vb6FormDefInstance = Value

End Set

End Property

这样在form2中你可以写form1.DefInstance.xxxx调用属性。这大概算是一种兼容的方法

实际上你应该这样写

在class form1中: Inherits System.WinForms.Form 一行的后面public fm as new form2

然后你可以象在vb6中一样,使用fm.visible=true载入窗体并在form1中控制他。

但是你却不能这样在form2中控制form1我想vb7是将form1作为默认的主窗体

应该在form2中这样写:Public fmm as system.winforms.form=form1 虽然vb7声称这样写等同于Public fmm as form1 但这样你会不成功。因为fmm的值为Null,如果使用 New form1那你会看到每调用一次会出现一个新的form1!!L

时间: 2025-01-19 10:26:03

Vb.Net问题集的相关文章

VB返回记录集结果到HTML表格的方法_vb

本文实例讲述了VB返回记录集结果到HTML表格的方法.分享给大家供大家参考.具体实现方法如下: function ReturnHTMLTable(query) set rs = cn.Execute(query) rs.MoveFirst response.Write "<table class=""data"" cols=""" & rs.Fields.Count & """

Vb.Net问题集 (转贴于此)

问题 作者:hejianzhong   我来谈一个自已不太懂的东西实在是不明智的,实在是没有人来谈,一个人默默的钻研总是很难有所成就的.在网上打入一个VB6的命题,会找到无数的解决方案..VB7外国已经出了好几本很好的书,在国内总有些人不屑这个beta版.这篇拙作也只算一个"Beta","bug"肯定不少,看了别生气,且作铺路石,且作铺路石. 一.VB7中调用不共享的方法,函数: 这个问题我在论坛发了好几天帖子,没人愿意回答.只好求助一些英文的例程. 有了结果,这个

走近VB.Net(一),VB中的族,类,对象(摘录部分MSDN)

对象 走近VB.Net(一),VB中的族,类,对象 VB.Net是面向对象(object-oriented)的,又称为物件(object)导向(oriented).在VB.Net中所有的变量类型都是基于object,而不是VariantDim x As Variant 会被升级为 Dim as object.如果你不理解对象,暂时你可以把他理解为一段数据,他是实际存在于内存的,所以对象以称为实例(instance)而类(class)就是类别,他定义一群对象,是一个对象的群体,并定义方法成员.所以

C#中使用Spread6.0全攻略

攻略 (一)在C#中加载Spread6.0 nmd002版<C#加载Spread6.0全攻略> 首先,在引用里加载Spread6.0的Dll文件.(如果你先安了C#,再安的Spread有可能不用加载,是自动引用的.)其次,在控件箱里选择一个准备放置Spread控件的选项卡,在里面点击右键,选择"添加/移除项",如果你的机器不够快,请先上厕所.然后,在对话框的"COM组件"里找"FarPoint Spread 6.0","Fa

使用VB调用Oracle程序包内的存储过程返回结果集

oracle|程序|存储过程        在实际的项目开发中我们需要通过VB(或其他语言工具)调用Oracle程序包内的存储过程返回结果集.这里以短信运营平台中的一个调用为例来说明这个过程,希望对你有所帮助. --一.使用SQL*Plus创建以下项目:--1.建表("OW_SMP"为方案名称,下同) CREATE TABLE "OW_SMP"."SM_Send_SM_List"(    SerialNo INT  PRIMARY KEY,  -

机房收费系统:(二)VB中强制大小写转换和记录集操作

一.VB中大小写的转换      VB中自带字母大小写转换函数LCase和UCase.      格式:UCase(任何有效的string或char表达式),UCase(string),U就是upper的意思,就是变大:相反的就是,LCase(任何有效的string或char表达式)函数,就是转换成小写字符,用法同理,不再累述.      说明:   (1)参数必选项,可为任意有效的字符或者表达式.                    (2)如果 string 参数中包含 Null,则返回 N

[原]VB.NET常用的哈希算法集 差不多30种.

问题描述 VB.NET常用的哈希算法集.其中包括了著名的暴雪的哈希,T33哈希.......全部是网上的C/C++代码改的(VB.NET的资源真的很少).不同的哈希算法在分布式,布降过滤器,位图MAP等等应用得比较多...''</summary>PublicClassMyUnchecked#Region"UInt64"<StructLayout(LayoutKind.Explicit)>PublicStructureUncheckedUInt64<Fiel

vb调用Webbrowser技巧集3

web|技巧 1.页面滚动: Private Sub Command2_Click() WebBrowser1.Document.parentwindow.scrollby 0, 30End Sub Private Sub Form_Load() WebBrowser1.Navigate "http://www.applevb.com"End Sub 点击Command2就可以使当前页面向下滚动30像素 2.判断页面是否可以前进后退 Private Sub Command1_Click

VB调用webbrowser技巧集2

web|技巧 向Webbrowser中写入HTML内容的几种方法 首先在Form_Load中加入 WebBrowser1.Navigate "about:blank" 确保Webbrowser1可用 方法1: Dim s As String Dim stream As IStream s = "" s = s + "" s = s + "" s = s + " hello world " s = s + &