只允许在winform组合框中使用整数

时间:2016-01-23 00:33:07

标签: c# winforms combobox

我目前正致力于使用c#编写照片编辑器,目前我正在设计允许笔工具更改尺寸的功能。除了一个问题外,它完美无缺。这里有一些背景信息:所以在我所拥有的组合框中,有10个项目,每个是数字1 - 10.如果我选择一个,或者直接在组合框中键入一些数字,它会将笔大小设置为。问题是,如果我输入一封信,它会给我一个

  

IndexOutOfRangeException

有没有办法可以让它组合使用只需要整数和浮点数?基本上我的意思是如果我按 3 ,笔的大小将变为3.但如果我按 H ,它什么都不做。

3 个答案:

答案 0 :(得分:1)

您可以执行以下两种选项之一。第一个选项是限制用户通过禁用键入键入comboobx。这可以通过在page_load

中提供此代码来实现
 comboBox1.DropDownStyle to ComboBoxStyle.DropDownList

或访问如下所示的值:

       if (int.TryParse(comboBox1.Text, out BreshSize))
        {
            // Proceed
        }
        else 
        { 
        //Show errror message
        }  

答案 1 :(得分:0)

此实现应该允许您查看新值是否为整数并相应地执行操作。当您开始检查值时,您可以将其放在代码中。 “2”将替换为您正在检查的字符串。

    int currInt = 0;
    int tryInt = 0;
    if(int.TryParse("2", out tryInt))
    {
        currInt = tryInt;         
    }
    else
    {
        //reset or display a warning
    }

答案 2 :(得分:0)

此外,您可以使用KeyPress处理程序来确保只键入了数字。

private void txtPenToolSize_KeyPress(object sender, KeyPressEventArgs e)
{
    if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))
    {
        e.Handled = true;
    }
}