【问题标题】:C# - Use Label to show how many Digits are leftC# - 使用标签显示剩余的位数
【发布时间】:2014-01-07 04:18:26
【问题描述】:

我创建了一个数独游戏,我有 23 个数字可供用户使用,他也需要解决这些问题。 我想知道是否有可能通过标签向用户显示剩余的没有数字的文本框。

我已经通过 WinForms 创建了游戏,而且我几乎已经掌握了。如果有人可以将我引向正确的方向,将不胜感激!

我创建了文本框并使用了数组,然后随机化了一个完成的数独。随机器本身就是一个完整的类,之后我几乎分配了数组

private void assign_Char_Value(string[] s_Rem_Value)
{
    arr_Char_Value = (s_Rem_Value[0] + s_Rem_Value[1] + s_Rem_Value[2] 
        + s_Rem_Value[3] + s_Rem_Value[4] + s_Rem_Value[5] + s_Rem_Value[6] 
        + s_Rem_Value[7] + s_Rem_Value[8]).ToCharArray();
    int i_Cnt = 0;
    foreach (TextBox[] arr_txtBox in validate.arr_txtBox_Horiz)
    {
        foreach (TextBox txtBox in arr_txtBox)
        {
            txtBox.Text = arr_Char_Value[i_Cnt].ToString();
            i_Cnt++;
        }
    }
    Rondomize_Numbers();
}

之后我选择了int number = 23;

我有 3 个按钮,其中一个用于纠正游戏,另一个用于随机化新游戏,另一个显示数独规则。

【问题讨论】:

  • 你的代码在哪里?你卡在哪一部分了?你有什么问题?
  • 如果您有兴趣,here 是我使用当前相关的 .Net Windows UI 技术而不是弃用的技术创建的数独板示例。
  • 我几乎不会称 WinForm 已弃用,HighCore。参考:stackoverflow.com/questions/913417/…

标签: c# winforms label


【解决方案1】:

为了简单起见,我们假设您将所有文本框都放在一个面板中。 并且文本框是面板中唯一的项目。

现在让您的文本框连接到相同的 textBox_TextChanged 事件,如下所示:

public Form1()
{
    InitializeComponent();
    foreach (TextBox txtBox in panel1.Controls)
    {
        txtBox.TextChanged += textBox_TextChanged;
    }
}

现在参加活动:

private void textBox_TextChanged(object sender, EventArgs e)
{
    var emptyCounter = 0;
    foreach (TextBox txtBox in panel1.Controls)
    {
        if (String.IsNullOrWhiteSpace(txtBox.Text))
        {
            emptyCounter++;
        }
    }

    label1.Text = emptyCounter.ToString();
}

您也可以使用 LINQ 语句代替上面的 foreach,使方法看起来像这样:

private void textBox_TextChanged(object sender, EventArgs e)
{
    var emptyCounter = panel1.Controls.OfType<TextBox>().Count(txtBox => String.IsNullOrWhiteSpace(txtBox.Text));

    label1.Text = emptyCounter.ToString();
}

希望这会有所帮助。

【讨论】:

  • .Cast&lt;TextBox&gt;() 如果 panel1 包含除 TextBox 以外的控件,则会引发异常。
  • +1 BTW:我会使用 String.IsNullOrWhiteSpace 而不是 IsNullOrEmpty 来跳过仅包含空格(但不为空)的文本框
  • 再次感谢这个对我来说实际上是新的。我更新了代码。但是,我认为在这种特定情况下,文本框应该只允许数字,因为它是数独游戏。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-29
  • 1970-01-01
  • 2014-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多