You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#开发求助:如何用NumericUpDown控制骰子掷出数量?

实现基于NumericUpDown的多骰子投掷功能

步骤1:准备控件

  • 在窗体上添加一个NumericUpDown控件,设置以下属性:
    • Name:nudDiceCount(方便代码中引用)
    • Minimum:1(最少投1个骰子)
    • Maximum:10(可根据需求调整最大值)
  • 添加一个按钮,Name设为btnRollDice,Text改为“投掷骰子”
  • 添加一个TextBox控件,设置Multiline = true、ScrollBars = Vertical,Name设为txtResult(用来显示多个骰子结果)

步骤2:修改代码

首先在窗体类的顶部声明类级别的Random对象(不要在按钮事件里每次新建,否则连续点击可能生成重复的随机数):

private Random rnd = new Random();

然后编写按钮的点击事件代码:

private void btnRollDice_Click(object sender, EventArgs e)
{
    // 获取NumericUpDown选择的骰子数量,转成int类型
    int diceCount = Convert.ToInt32(nudDiceCount.Value);
    
    // 清空之前的结果
    txtResult.Text = "";
    
    // 循环生成对应数量的随机数
    for (int i = 0; i < diceCount; i++)
    {
        // 生成1-6的随机数(标准骰子范围,需要其他面数可修改Next的参数)
        int diceValue = rnd.Next(1, 7);
        // 将每个结果追加到文本框,每行一个
        txtResult.Text += $"骰子{i+1}:{diceValue}\r\n";
    }
}

关键说明

  • 类级别Random:确保每次生成的随机数是真正随机的,避免连续点击时因系统时钟未变化导致重复值。
  • nudDiceCount.Value:返回的是decimal类型,必须转成int才能用于循环次数。
  • 结果显示:用换行分隔每个骰子的结果,方便阅读;如果需要用逗号分隔,可改成txtResult.Text += $"{diceValue}, ";,最后再处理掉末尾的逗号。

内容的提问来源于stack exchange,提问作者Collin Buskey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 00:28:07