精华内容
下载资源
问答
  • 代码光标定位到单词Random,点F1键获取帮助。 一、Random类常用知识点(以下内容来源于帮助): 1、构造函数: (1)、Random() 使用与时间相关的默认种子值,初始化 Random 类的新实例。 (2)、Random...

    VB6.0升级到VB.NET后,发现随机数函数也发生了变化,在VB.NET中Random类是一种能够产生满足某些随机性统计需求的数字序列的伪随机数生成器。
    在代码把光标定位到单词Random,点F1键获取帮助。
    一、Random类常用知识点(以下内容来源于帮助,点击进入Random类帮助网页):
    1、构造函数:
    (1)、Random()
    使用与时间相关的默认种子值,初始化 Random 类的新实例。
    (2)、Random(Int32)
    使用指定的种子值初始化 Random 类的新实例。
    参数为种子值,数据类型为Int32,用来计算伪随机数序列起始值的数字。 如果指定的是负数,则使用其绝对值。
    2、方法:
    (1)、Next:返回一个随机整数。
    A、无参数:Next()——返回一个非负随机整数。
    B、一个参数:Next(maxValue) ——返回一个小于所指定最大值的非负随机整数。
    参数(maxValue):类型为Int32,要生成的随机数的上限(随机数不能取该上限值)。maxValue 必须大于或等于 0。
    返回值:类型为Int32,大于或等于零且小于 maxValue 的 32 位有符号整数,即:返回值的范围通常包括零但不包括 maxValue。 但是,如果 maxValue 等于 0,则返回 maxValue。
    C、两个参数:Next(minValue,maxValue)——返回在指定范围内的任意整数。
    参数(minValue):类型为Int32,返回的随机数的下界(随机数可取该下界值)。
    参数(maxValue):类型为Int32,返回的随机数的上界(随机数不能取该上界值)。 maxValue 必须大于或等于 minValue。
    返回值:类型为Int32,一个大于等于 minValue 且小于 maxValue 的 32 位带符号整数,即:返回的值范围包括 minValue 但不包括 maxValue。 如果 minValue 等于 maxValue,则返回 minValue。
    (2)、NextBytes:用随机数填充指定字节数组的元素。
    NextBytes(buffer)
    参数(buffer):Byte[],包含随机数的字节数组。
    说明:字节数组的每个元素设置为随机数字大于或等于 0,且小于或等于MaxValue。
    (3)、NextDouble:返回一个大于或等于 0.0 且小于 1.0 的随机双精度型浮点数。
    没有参数,返回值类型为Double。
    3、使用方法:
    要生成各种类型的随机数,必须先得到它的实例对象,然后再生成随机数。注意只实例化一个对象,可以多次方法调用,生成的数字分布均匀,每个数字返回的可能性均相等。
    二、Random类生成随机数的弱点
    Random类生成随机数是伪随机数,所以在Random的内部产生机制中还是有一定规律的,并非是真正意义上的完全随机。 如果种子值相同则每次均产生相同的随机数。如下面代码在构造函数中指定了种子值:

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Dim rand As Random = New Random(66)
            For i As Integer = 0 To 10
                Me.Label1.Text = Me.Label1.Text & rand.Next() & Environment.NewLine
            Next
        End Sub
    

    每次运行程序均生成相同的随机数序列,如下图所示,不信你就测试一下。
    伪随机数
    三、怎样才能每次运行程序时均生成不同的随机数?
    其实很简单,就是每次运行程序时改变Random类的构造函数的种子值,可以有以下做法:
    第一种方式: 使用无参数的Random()构造函数;
    默认种子值是使用DateTime.Now.Ticks作为种子值的,如果触发Random函数间隔时间很短, 就有可能造成产生一样的随机数。
    第二种方式: 使用RNGCryptoServiceProvider生成种子值;生成速度较慢。
    在帮助里有看到推荐,如下图:
    RNGCryptoServiceProvider
    第三种方式: 使用Guid生成种子值; 生成速度快。
    测试代码如下:

    Public Class Form1
        ''' <summary>
        ''' 通过RNGCryptoServiceProvider获取种子值
        ''' </summary>
        ''' <returns></returns>
        Private Shared Function GetRandomSeed() As Integer
            Dim bytes As Byte() = New Byte(3) {}
            Dim rng As System.Security.Cryptography.RNGCryptoServiceProvider = New System.Security.Cryptography.RNGCryptoServiceProvider()
            rng.GetBytes(bytes)
            Return BitConverter.ToInt32(bytes, 0)
        End Function
        
        ''' <summary>
        ''' 通过Guid获取种子值
        ''' </summary>
        ''' <returns></returns>
        Private Shared Function GetRandomSeedbyGuid() As Integer
            'Return New Guid().GetHashCode()
            Return Guid.NewGuid().GetHashCode()
        End Function
    
        ''' <summary>
        ''' 默认种子值生成随机数
        ''' </summary>
        ''' <param name="sender"></param>
        ''' <param name="e"></param>
        Private Sub BtnTime_Click(sender As Object, e As EventArgs) Handles BtnTime.Click
            Dim rand As Random = New Random()
            Me.Label1.Text = ""
            For i As Integer = 0 To 10
                Me.Label1.Text = Me.Label1.Text & rand.Next() & Environment.NewLine
            Next
        End Sub
        
        ''' <summary>
        ''' RNGCryptoServiceProvider种子生成随机数
        ''' </summary>
        ''' <param name="sender"></param>
        ''' <param name="e"></param>
        Private Sub BtnRNG_Click(sender As Object, e As EventArgs) Handles BtnRNG.Click
            Dim rand As Random = New Random(GetRandomSeed())
            Me.Label1.Text = ""
            For i As Integer = 0 To 10
                Me.Label1.Text = Me.Label1.Text & rand.Next() & Environment.NewLine
            Next
        End Sub
        
        ''' <summary>
        ''' Guid种子生成随机数
        ''' </summary>
        ''' <param name="sender"></param>
        ''' <param name="e"></param>
        Private Sub BtnGuid_Click(sender As Object, e As EventArgs) Handles BtnGuid.Click
            Dim rand As Random = New Random(GetRandomSeedbyGuid())
            Me.Label1.Text = ""
            For i As Integer = 0 To 10
                Me.Label1.Text = Me.Label1.Text & rand.Next() & Environment.NewLine
            Next
        End Sub
    End Class
    

    四、生成数字和字母组合的随机数
    开始想到用ASCII码,但数字、小写字母及大写字母的ASCII码是不连续的,觉得不是很理想,下面的方法感觉还不错,做个笔记。

    Public Function GetAlphanumeric() As String
            Dim str As String = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
            Dim rnd As New Random()
            '返回数字
            'Return rnd.[Next](10).ToString()
            '返回小写字母
            Return str.Substring(10 + rnd.[Next](26), 1)
            '返回大写字母
            'Return str.Substring(36 + rnd.[Next](26), 1)
            '返回大小写字母混合
            'Return str.Substring(10 + rnd.[Next](52), 1)
            '返回小写字母和数字混合
            'Return str.Substring(0 + rnd.[Next](36), 1)
            '返回大写字母和数字混合
            'Return str.Substring(0 + rnd.[Next](36), 1).ToUpper()
            '返回大小写字母和数字混合
            'Return str.Substring(0 + rnd.[Next](61), 1)
        End Function
    

    五、生成不重复随机数
    1、 从N个数中随机取出一个数,与数组第N个数调换;
    2、 从前N-1个数中随机取出一个数,与第(N-1)个数调换;
    ……
    代码通过_end-1,把生成过的数用最后一个数代替,省去删除移动的开销。
    代码如下:

    Public Function GetRandomSequence(ByVal total As Integer) As Integer()
            Dim sequence As Integer() = New Integer(total - 1) {}
            Dim output As Integer() = New Integer(total - 1) {}
    
            For i As Integer = 0 To total - 1
                sequence(i) = i
            Next
    
            Dim random As Random = New Random()
            Dim _End As Integer = total - 1
    
            For i As Integer = 0 To total - 1
                Dim num As Integer = random.[Next](0, _End + 1)
                output(i) = sequence(num)
                sequence(num) = sequence(_End)
                _End -= 1
            Next
    
            Return output
        End Function
    

    本文参考了以下博文:
    不重复随机数列生成算法
    学习过程得到网友uruseibest的帮助,表示感谢!

    展开全文
  • vb学生成绩管理系统

    2013-06-28 08:55:24
    Text1.SetFocus '定位光标 Exit Sub End If If Text2.Text = "" Then MsgBox "未输入姓名,请重新输入数据!", vbCritical + vbOKOnly Text2.SetFocus '定位光标 Exit Sub End If '首先查询表中是否存在...
  • VB 实现纯文本的选择等操作,操作对象是TXT格式那种纯字符文本格式,完整的代码如下:  Private Sub Command1_Click()  Text1.Text = "大学毕业生就业形势严峻是当前社会的一大难题,创建社会主义和谐社会是...
  • VB编程资源大全

    2007-10-17 20:47:23
    useanicursor.zip 在VB中使用Ani光标(6KB) 94,maxmin1.zip 控制窗口尺寸1(6KB) 95,maxmin2.zip 控制窗口尺寸2(8KB) 96,dissysmenu.zip 将任务栏的关闭按钮设为无效(6KB) 97,hidemenu....
  • •智能格式化,代码替换,光标定位等。 •可以通过Visual Studio自定义命令。 •整合的命令管理器 •包含多个有用的命令。 •支持Visual Studio 2005 和 Visual Studio 2005 2008。 •支持Windows Vista。 官方...
  • Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java...
  • AutoCode 是Visual Studio.NET的一个自动代码完成免费插件,支持VB.NET, C#, VC++, ASP.NET, Xml等。主要有如下特性。 只需要“Ctrl+Enter”就可以自动完成很多代码... 智能格式化,代码替换,光标定位等。 ...

    AutoCode 是Visual Studio.NET的一个自动代码完成免费插件,支持VB.NET, C#, VC++, ASP.NET, Xml等。主要有如下特性。

    • 只需要“Ctrl+Enter”就可以自动完成很多代码。
    • 自动生成aspx代码。
    • 完全支持Visual Studio的对象。
    • 智能格式化,代码替换,光标定位等。
    • 可以通过Visual Studio自定义命令。
    • 整合的命令管理器
    • 包含多个有用的命令。
    • 支持Visual Studio 2005 和 Visual Studio 2005  2008。
    • 支持Windows Vista。

    官方下载地址:AutoCode for Visual Studio.NET

    设置

    官方下载的AutoCode 是不支持中文版本的,如果你用的中文版本请下载AutoCode 2008 v3.90.331这个版本。安装后需要注册“Ctrl+Enter”到AutoCode.Execute。具体过程

    工具/选项/键盘/ 注册“Ctrl+Enter”到“AutoCode2008.Execute”

    更新:感谢小灰提醒,大家最好把“全局”和“文本编辑器”都注册到AutoCode2008.Execute,只注册“全局好像不可用”

    感谢晓风残月发现此插件。

    原文:http://blog.119797.com/post/AutoCode-for-Visual-StudioNET.aspx


    转载于:https://www.cnblogs.com/benbenx/archive/2008/06/01/autocode.html

    展开全文
  • AutoCode 是Visual Studio...•智能格式化,代码替换,光标定位等 •可以通过Visual Studio自定义命令 •整合的命令管理器 •包含多个有用的命令。 •支持Visual Studio 2008,2010,2012 •支持Windows Vista
  • AutoCode 是Visual Studio...•智能格式化,代码替换,光标定位等 •可以通过Visual Studio自定义命令 •整合的命令管理器 •包含多个有用的命令。 •支持Visual Studio 2008,2010,2012 •支持Windows Vista
  • AutoCode 是Visual Studio.NET的...•智能格式化,代码替换,光标定位等 •可以通过Visual Studio自定义命令 •整合的命令管理器 •包含多个有用的命令。 •支持Visual Studio 2008,2010,2012 •支持Windows Vista
  • F11 为数据清单创建图表,Alt F11显示VB编辑器,Shift F11或ALT SHIFT F1插入新空白工作表,CTRL F11插入Excel 4.0宏工作表 F12 显示另存为对话框 Ctrl 0隐藏光标所在的列 Ctrl 1激活单元格格式对话框 Ctrl 5...
  • java源码包---java 源码 大量 实例

    千次下载 热门讨论 2013-04-18 23:15:26
     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
  • java源码包2

    千次下载 热门讨论 2013-04-20 11:28:17
     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
  • java源码包3

    千次下载 热门讨论 2013-04-20 11:30:13
     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
  • java源码包4

    千次下载 热门讨论 2013-04-20 11:31:44
     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
  • Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java...
  • Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java...
  • C#微软培训教材(高清PDF)

    千次下载 热门讨论 2009-07-30 08:51:17
    18.2 在 C #代码中调用 C++和 VB 编写的组件 .240 18.3 版 本 控 制 .249 18.4 代 码 优 化 .252 18.5 小 结 .254 第五部分 附 录 .255 附录 A 关 键 字.255 附录 B 错 误 码.256 附录 C .Net 名字空间...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
  • C#微软培训资料

    2014-01-22 14:10:17
    18.2 在 C #代码中调用 C++和 VB 编写的组件 .240 18.3 版 本 控 制 .249 18.4 代 码 优 化 .252 18.5 小 结 .254 第五部分 附 录 .255 附录 A 关 键 字.255 附录 B 错 误 码.256 附录 C .Net 名字空间...
  • vc++ 应用源码包_2

    2012-09-15 14:27:40
    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...
  • vc++ 应用源码包_1

    2012-09-15 14:22:12
    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...
  • vc++ 应用源码包_6

    2012-09-15 14:59:46
    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...
  • vc++ 应用源码包_5

    2012-09-15 14:45:16
    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...
  • vc++ 应用源码包_4

    2012-09-15 14:38:35
    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...
  • vc++ 应用源码包_3

    2012-09-15 14:33:15
    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...
  • vc++ 开发实例源码包

    2014-12-16 11:25:17
    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...
  • “库文件名”以.lib或.obj为后缀的将被视为静态库,可使用绝对路径或相对路径(相对当前源代码所在目录),如依赖多个静态库请分别列出并以逗号分隔;“在库中的对应命令名”请务必准确填写静态库中公开导出的符号...

空空如也

空空如也

1 2
收藏数 31
精华内容 12
关键字:

vb代码定位光标