vb.net调用语法 vb如何调用function( 五 )


Label3.Text = sfName
Dim iIcon_Num As Integer = Icon_Num ( IntPtr.Zero , sfName , -1 )
'显示文件中的图标数目
Label4.Text = iIcon_Num.ToString ( )
Dim i As Integer
For i = 0 To iIcon_Num - 1 Step 1
'强制实现int到uint类型转换
Dim j As UInt32
j = System.Convert.ToUInt32 ( i )
Dim hIcon As System.IntPtr = ExtractIcon ( IntPtr.Zero , sfName , j )
'在imageList1组件中加入当然提取的图标
ImageList1.Images.Add ( Icon.FromHandle ( hIcon ).ToBitmap ( ) )
'在ListView组件中加入一个项目
ListView1.Items.Add ( "第" + ( i + 1 ).ToString ( ) + "个图标" )
'把加入项目的图象索引指向刚才加入图标在imagList1组件中的索引,从而显示图标
ListView1.Items ( i ).ImageIndex = i
Next i
End If
End Sub
12. 至此,在上述步骤都正确执行后,【Visual Basic .Net查看文件中的图标】项目的全部工作就完成了 。单击快捷键F5就可以运行程序,此时单击【选择文件】按钮选择文件后 , 程序就能够读取这个文件中的图标及其数目,并显示出来了 。具体如图03所示:
图03:【Visual Basic .Net查看文件中的图标】项目的运行界面
五.总结:
解决Visual Basic .Net查看文件中的图标的关键并非是使用.Net框架中提供的类库 , 而是使用Windows的API函数 。虽然这与利用Visual Basic .Net开发跨平台程序的初衷相违背,但的确不失为一种解决问题的方法 。有些时候通过Windows API函数能够快捷、方便的解决实际问题,而这往往是只使用.Net FrameWork SDK所望尘莫及的 , 但随着.Net FrameWork SDK内容的不断丰富,各种新的组成部分和新的功能不断加入,可以预见的是 , 在未来的.Net FrameWork SDK中必将拥有可以替换本文中介绍的二个Windows API函数的组成部分 。
VB.NET怎么调用其它模块的过程?调用过程,调用过程有诸多技巧,它们与过程的类型、位置以及在应用程序中的使用方式有关 。下面说明如何调用 Sub 过程和 Function 过程 。
调用 Sub 过程
与 Sub 过程不同,在表达式中,Sub 过程不能用其名字调用 。调用 Sub 过程的是一个独立的语句 。Sub 过程还有一点与函数不一样 , 它不会用名字返回一个值 。但是,与 Function过程一样,Sub 过程也可以修改传递给它们的任何变量的值 。
调用 Sub 过程有两种方法:
'以下两个语句都调用了名为 MyProc 的 Sub 过程 。
Call MyProc (FirstArgument, SecondArgument)
MyProc FirstArgument, SecondArgument
注意,当使用 Call 语法时,参数必须在括号内 。若省略 Call 关键字,则也必须省略参数两边的括号
调用函数过程
通常,调用自行编写的函数过程的方法和调用 Visual Basic 内部函数过程(例如 Abs)的方法一样;即在表达式中写上它的名字 。
'下面的语句都调用函数 ToDec 。
Print 10 * ToDec
X = ToDec
If ToDec = 10 Then Debug.Print "Out of Range"
X = AnotherFunction ( 10 * ToDec)
就像调用 Sub 过程那样,也能调用函数 。下面的语句都调用同一个函数:
Call Year (Now)
Year Now
当用这种方法调用函数时,Visual Basic 放弃返回值 。
调用其它模块中的过程
在工程中的任何地方都能调用其它模块中的公用过程 。可能需要指定这样的模块,它包含正在调用的过程 。调用其它模块中的过程的各种技巧,取决于该过程是在窗体模块中、类模块中还是标准模块中 。
窗体中的过程
所有窗体模块的外部调用必须指向包含此过程的窗体模块 。如果在窗体模块 Form1 包含 SomeSub 过程 , 则可使用下面的语句调用 Form1 中的过程:

推荐阅读