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

    技术2022-05-11  39

    从过去到未来、 VisualBasicNet (二)

    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, DataGridDattaRetpeaterADO刚出来时以前有许多支持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我们应当不陌生,VSNET中它已成为一个常用的属性,在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.   增加一个变量的值。以前很羡慕CJava i++; ++i ; k += 2 这样简捷的语法,现在VB.NET也支持这样的语法了,尽管有些违背VB简单的宗旨,不过会有更多的人喜欢在VB中也写这样的代码。

    过去的VB

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

    MyValue MyValue + 10

     

    现在的VB.NET

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

             MyValue += 10

     

             同样的还有:

            MyValue -= 10

             MyValue /= 10

             MyValue *= 10

     

     


    最新回复(0)