首页 > 解决方案 > 如何根据C#中的数字上下值从文本框中删除字符?

问题描述

我有这两个领域:

在此处输入图像描述

加载时 - 默认值为 4。

我的目标是根据选择的数字来投射产品代码文本框。

例子

从上面的示例中,这应该是输出:

在此处输入图像描述

如果我将它设置为 2 它应该是这样的:

在此处输入图像描述

我试过的:

private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
    productCode.Text = (productCode.Text.Substring(0, productCode.Text.Length - numericUpDown1.Value));
}

错误

Cannot convert from decimal to int

还...

我已经对此进行了测试:

productCode.Text = (productCode.Text.Substring(0, productCode.Text.Length - 4));

如果我多次应用它,它会让我出错:

An unhandled exception of type 'System.ArgumentOutOfRangeException' occurred in mscorlib.dll
Additional information: Length cannot be less than zero.

问题

实现这一目标的正确方法是什么?

标签: c#

解决方案


看看你的例子,我认为这是一种方法:

private string originalProductCode = "0001050OL"; //Set this if productcode changes


private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
    productCode.Text = (originalProductCode.Substring(0, (int)numericUpDown1.Value));
}

推荐阅读