从过去到未来、 从Visual和Basic到Net。(从VB到VB.NET的12个技巧)(二)

类别:编程语言 点击:0 评论:0 推荐:

从过去到未来、 从Visual和Basic到Net (二)

5.   读取注册表。Windows中的注册表是如此重要,象一个巨大宝藏永远神秘和让你小心翼翼。有时我们必须在注册表中取或放一些信息。但VB提供的函数只能访问HKEY_CURRENT_USER\Software\VB and VBA Program Settings\appname\section\key中的值,至于之外的你需要调用其它的API函数来实现,我知道多数的人都是通过自己的模块和类来解决这个问题。

过去的VB

======================================================

你可以去下面的网址中获得帮助和代码。

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?lngWId=1&txtCodeId=1881

现在的VB.NET

======================================================

   Private Sub btnWriteRegistry_Click(ByVal sender As _

      System.Object, ByVal e As System.EventArgs)

      Handles btnWriteRegistry.Click

  

      Dim aKey As RegistryKey

      aKey = Registry.CurrentUser.CreateSubKey _

        ("Software\VBDotNetDemo")

      aKey.SetValue("VBDotNetDemo", "VB.NET")

      MessageBox.Show("The value of the new key " _

         & "'HKEY_CURRENT_USER\Software\" & _

         "VBDotNetDemo' is: " _

         & aKey.GetValue("VBDotNetDemo", _

         "Default value"), _

         "Key Created Successfully")

   End Sub

 

6.   快速展现你的数组数据到一个ListBox,如果你手上有一个ADO的记录集,那么你可以很快的绑定到带有数据绑定的感知控件上,这些控件带着Data的字样比如:DataList, DataGrid、DattaRetpeater。ADO刚出来时以前有许多支持RDO的数据控件是不能兼容两者的。

过去的VB

======================================================

   Private Sub cmdPopulateList_Click()

      Dim listItems(4) As String

      Dim i As Integer

      listItems(0) = "One"

      listItems(1) = "Two"

      listItems(2) = "Three"

      listItems(3) = "Four"

      listItems(4) = "Five"

      List1.Clear

      For i = 0 To 4

         List1.AddItem listItems(i)

      Next

   End Sub

现在的VB.NET

======================================================

   Private Sub btnPopulateList_Click(ByVal sender As _

      System.Object, ByVal e As System.EventArgs) _

      Handles btnPopulateList.Click

  

      Dim listItems() As String = {"One", "Two", _

         "Three", "Four", "Five"}

      ListBox1.DataSource = listItems

   End Sub

有关于DataSource我们应当不陌生,VS。NET中它已成为一个常用的属性,在VB6中它只是被称为数据绑定专门使用的一个属性。ASP+中的更多控键支持DataSource属性,并且不会要求一定是数据库连接或Select获得的数据。这个数据源可以是任何形式的数据库源。

 

7.   产生一个随机数。如何产生一个随机数,并且让它只在一定的范围中变动。这是个很常用的东东,虽然我们已不再自己写一些拙劣的简单游戏,但还依然记得刚刚接触电脑时,为实现产生一个随机数而产生的激动和兴奋。

过去的VB

======================================================

   Private Function getRandomNumber _

      (low As Long, high As Long) As Long

      Randomize(Now())

      getRandomNumber = CInt((high - low + 1) * _

         Rnd + low)

   End Function

 

现在的VB.NET

======================================================

    Private Function getRandomNumber _

      (ByVal low, ByVal high) As Integer

      getRandomNumber = New System.Random(). _

         Next(low, high)

    End Function

 

8.   VB6几乎成为COM最好的搭档,在所有VB6的新功能中COM方面的功能可以让你惊叹。COM虽然是二进制的代码,但始终有些人认为COM自己是有生命的。GUID是什么东东呢。不过VB.NET的实现太简单了吧,会给人一种错觉:dotnet是一种更COM的技术。

过去的VB

======================================================

   Private Declare Function CoCreateGuid Lib _

      "ole32.dll" (buffer As Byte) As Long

   Private Declare Function StringFromGUID2 Lib _

      "ole32.dll" (buffer As Byte, ByVal lpsz As Long, _

      ByVal cbMax As Long) As Long

  

   Private Function getGUID() As String

      Dim buffer(15) As Byte

      Dim s As String

      Dim ret As Long

      s = String$(128, 0)

      ret = CoCreateGuid(buffer(0))

      ret = StringFromGUID2(buffer(0), StrPtr(s), 128)

      getGUID = Left$(s, ret - 1)

   End Function

现在的VB.NET

======================================================

Private Function getGUID() As String

      GetGUID = "{" & _

         System.Guid.NewGUID().ToString & "}"

    End Function

 

9.   增加一个变量的值。以前很羡慕C或Java的 i++; ++i ; k += 2 这样简捷的语法,现在VB.NET也支持这样的语法了,尽管有些违背VB简单的宗旨,不过会有更多的人喜欢在VB中也写这样的代码。

过去的VB

======================================================

MyValue = MyValue + 10

 

现在的VB.NET

======================================================

         MyValue += 10

 

         同样的还有:

        MyValue -= 10

         MyValue /= 10

         MyValue *= 10

 

 

本文地址:http://com.8s8s.com/it/it30125.htm