在开始我会说我是一个初学者在编程,但我想使一个程序的工作,将随机化的名字雇员。2只有名字是在复选框中选中。3它目前随机化我要么从所有的名字或从最近选定的。4名字迄今标记为:N1、N2、N3、N4、N5:我的代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace MNW_v._1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void groupBox1_Enter(object sender, EventArgs e)
{
}
private void N1_CheckedChanged(object sender, EventArgs e)
{
}
private void N2_CheckedChanged(object sender, EventArgs e)
{
}
private void N3_CheckedChanged(object sender, EventArgs e)
{
}
private void N4_CheckedChanged(object sender, EventArgs e)
{
}
private void N5_CheckedChanged(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
string[] tablica = new string[] { N1.Text, N2.Text, N3.Text, N4.Text, N5.Text };
Random rn = new Random();
int obj = rn.Next(0, tablica.Length);
Console.Write(obj);
if (N1.Checked)
{
MessageBox.Show(N1.Text);
}
else if (N2.Checked)
{
MessageBox.Show(N2.Text);
}
else if (N3.Checked)
{
MessageBox.Show(N3.Text);
}
else if (N4.Checked)
{
MessageBox.Show(N4.Text);
}
else if (N5.Checked)
{
MessageBox.Show(N5.Text);
}
}
}
}
我已经尝试过创建一个额外的类,但似乎选中复选框并不影响程序的操作。
5条答案
按热度按时间ee7vknir1#
下面是我能想到的解决这个问题的最简单的方法:
它只需要创建一个复选框数组,这些复选框是从最初的5个复选框集合中选中的,然后它确保数组中至少有一个复选框,并随机显示其中一个复选框的消息。
下面是一个效率稍低的方法(尽管有5个复选框,差异可以忽略不计),我认为稍微整洁一些:
ao218c7q2#
我宁愿使用
CheckBox
的数组,而不是它们的Text
:如果您的.Net版本 * 不支持 *
Random.Shared
,您可以使用一个字段:ao218c7q3#
据我所知,你想从被检查的名字中随机挑选一个。
如果
CheckedChanged
事件是通过在选中的复选框列表中添加或删除复选框来处理的,那么当您单击Pick按钮时,_random
(它是一个 member 字段,不是每次都示例化)将被调用以选取一个保证小于列表中Count
的数字。例如,如图所示,此代码将生成**N4、N3、N2、N4、N2...**等。
出于测试目的,在示例化时将
Random
的值设定为2,可确保每次生成 * 相同 * 的伪随机序列。(否则,默认种子值Random从系统时钟获得,并在每次运行此代码时生成一个新序列。)wr98u20j4#
您的代码创建一个数组,生成一个随机数,然后忽略这两个数组,只选择第一个选定的名称。
现在生成随机索引
现在用那个
lf3rwulv5#
我想这段代码应该可以帮助你:
快速解释:
1.关于
new Random(Guid.NewGuid().GetHashCode());
初始化。这段代码在你每次启动应用程序时提供不同的随机值。1.我用
Controls
属性得到窗体的所有控件。这样你就可以在窗体上创建任意数量的复选框,而不用编辑这段代码。希望这对你有帮助:)