Vb.net 随机带名生成器

Vb.net 随机带名生成器,vb.net,Vb.net,我试图在vb.net中创建一个随机带名生成器,但每当我随机生成它时,它都会显示一个数字,而不是组合框中的一个单词 公共类表单1 私有子btnMake_Click(发送者作为对象,e作为事件参数)处理btnMake。单击 随机化 ComboBox1.Text=Int(Rnd()*ComboBox1.Items.Count) ComboBox2.Text=Int(Rnd()*ComboBox2.Items.Count) txtResult.Text=ComboBox1.Text+“”+Combox2

我试图在vb.net中创建一个随机带名生成器,但每当我随机生成它时,它都会显示一个数字,而不是组合框中的一个单词

公共类表单1
私有子btnMake_Click(发送者作为对象,e作为事件参数)处理btnMake。单击
随机化
ComboBox1.Text=Int(Rnd()*ComboBox1.Items.Count)
ComboBox2.Text=Int(Rnd()*ComboBox2.Items.Count)
txtResult.Text=ComboBox1.Text+“”+Combox2.Text
端接头
私有子btnFavourite\u单击(发件人作为对象,e作为事件参数)处理btnFavourite。单击
ListBox1.Items.Add(txtreult.Text)
端接头
末级
它应该随机打印我放在组合框中的一个名字,但它会给我随机数,而不是文本

ComboBox1.SelectedIndex = Int(Rnd() * ComboBox1.Items.Count)
设置文本而不是文本

ComboBox1.SelectedIndex = Int(Rnd() * ComboBox1.Items.Count)

选项置于代码文件顶部的
上。您将看到编译错误

选项Strict On不允许从“Single”到“String”的隐式转换

在这条线上

ComboBox1.Text = Int(Rnd() * ComboBox1.Items.Count)
因为返回与传递的数字类型相同的数字的整数部分。所以传递一个单数,它返回一个单数

从Microsoft.VisualBasic元数据:

”摘要:
'返回数字的整数部分。
' ...
公共函数Int(数字为单)为单
但您不想将ComboBox.Text设置为数字。您可能需要设置ComboBox.SelectedIndex。你可以试试

ComboBox1.SelectedIndex = Int(Rnd() * ComboBox1.Items.Count)
但是,如果对
选项施加严格限制,则仍然存在类型不匹配,因为您试图将整数设置为单个。您可以在
CInt
转换中包装
Int

ComboBox1.SelectedIndex = CInt(Int(Rnd() * ComboBox1.Items.Count))
但现在已经失控了

问题是:您正在使用过时的函数,
Int
Rnd
。这些都是从VB6天带来的,如果你使用VB.NET函数,那就容易多了。见全班同学。使用Random,您可以访问Random.Next,它实际上返回一个整数。太好了

Dim r作为新随机数()
ComboBox1.SelectedIndex=r.Next(ComboBox1.Items.Count)
ComboBox2.SelectedIndex=r.Next(ComboBox2.Items.Count)
以下是完整的代码(添加了一个事件处理程序,以便在索引更改时(即用户手动更改索引时)更新txtreult)

Private Sub btnMake\u Click(发送者作为对象,e作为事件参数)处理btnMake。单击
Dim r作为新的随机变量()
ComboBox1.SelectedIndex=r.Next(ComboBox1.Items.Count)
ComboBox2.SelectedIndex=r.Next(ComboBox2.Items.Count)
端接头
私有子组合框\u SelectedIndexChanged(发送方作为对象,e作为事件参数)处理组合框1.SelectedIndexChanged,组合框2.SelectedIndexChanged
txtreult.Text=ComboBox1.Text&&&ComboBox2.Text
端接头
私有子btnFavourite\u单击(发件人作为对象,e作为事件参数)处理btnFavourite。单击
ListBox1.Items.Add(txtreult.Text)
端接头

选项严格置于代码文件顶部。您将看到编译错误

选项Strict On不允许从“Single”到“String”的隐式转换

在这条线上

ComboBox1.Text = Int(Rnd() * ComboBox1.Items.Count)
因为返回与传递的数字类型相同的数字的整数部分。所以传递一个单数,它返回一个单数

从Microsoft.VisualBasic元数据:

”摘要:
'返回数字的整数部分。
' ...
公共函数Int(数字为单)为单
但您不想将ComboBox.Text设置为数字。您可能需要设置ComboBox.SelectedIndex。你可以试试

ComboBox1.SelectedIndex = Int(Rnd() * ComboBox1.Items.Count)
但是,如果对
选项施加严格限制,则仍然存在类型不匹配,因为您试图将整数设置为单个。您可以在
CInt
转换中包装
Int

ComboBox1.SelectedIndex = CInt(Int(Rnd() * ComboBox1.Items.Count))
但现在已经失控了

问题是:您正在使用过时的函数,
Int
Rnd
。这些都是从VB6天带来的,如果你使用VB.NET函数,那就容易多了。见全班同学。使用Random,您可以访问Random.Next,它实际上返回一个整数。太好了

Dim r作为新随机数()
ComboBox1.SelectedIndex=r.Next(ComboBox1.Items.Count)
ComboBox2.SelectedIndex=r.Next(ComboBox2.Items.Count)
以下是完整的代码(添加了一个事件处理程序,以便在索引更改时(即用户手动更改索引时)更新txtreult)

Private Sub btnMake\u Click(发送者作为对象,e作为事件参数)处理btnMake。单击
Dim r作为新的随机变量()
ComboBox1.SelectedIndex=r.Next(ComboBox1.Items.Count)
ComboBox2.SelectedIndex=r.Next(ComboBox2.Items.Count)
端接头
私有子组合框\u SelectedIndexChanged(发送方作为对象,e作为事件参数)处理组合框1.SelectedIndexChanged,组合框2.SelectedIndexChanged
txtreult.Text=ComboBox1.Text&&&ComboBox2.Text
端接头
私有子btnFavourite\u单击(发件人作为对象,e作为事件参数)处理btnFavourite。单击
ListBox1.Items.Add(txtreult.Text)
端接头

您需要使用生成的随机数从组合框中获取特定项,如
Dim part1 As String=ComboBox1.Items(CInt(Rnd()*(ComboBox1.Items.Count-1))).ToString()
您需要使用生成的随机数从组合框中获取特定项,如
Dim part1 As String=ComboBox1.Items(CInt(Rnd()*(ComboBox1.Items.Count-1)).ToString()