我目前正致力于使用c#编写照片编辑器,目前我正在设计允许笔工具更改尺寸的功能。除了一个问题外,它完美无缺。这里有一些背景信息:所以在我所拥有的组合框中,有10个项目,每个是数字1 - 10.如果我选择一个,或者直接在组合框中键入一些数字,它会将笔大小设置为。问题是,如果我输入一封信,它会给我一个
IndexOutOfRangeException
有没有办法可以让它组合使用只需要整数和浮点数?基本上我的意思是如果我按 3 ,笔的大小将变为3.但如果我按 H ,它什么都不做。
答案 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;
}
}