首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有自动加/减函数的C#数字UpDown

带有自动加/减函数的C#数字UpDown
EN

Stack Overflow用户
提问于 2012-07-14 22:28:23
回答 2查看 1.9K关注 0票数 0

我有一个NumericUpDown控件,我希望独立文本框内的值减少或增加,这取决于用户输入的内容(向上还是向下)

我使用什么事件或代码来完成这个任务?我试过了,但是运行时出错了。

“无法将'System.Windows.Forms.NumericUpDown‘类型的对象转换为’System.IConverable‘类型。

代码语言:javascript
复制
  int UpDownNum;
  int NumBank;
  int TV = 0
  private void UpDown1_MouseUp(object sender, MouseEventArgs e)
    {
        UpDownNum = (Convert.ToInt32(UpDown1));
        NumBank = (Convert.ToInt32(NumTextbox.Text));

        TV = NumBank - UpDownNum;
        NumTextbox.Text = (Convert.ToString(TV));

我做错事了吗?还是其他的问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-14 22:34:15

此异常是由将NumericUpdown控件转换为整数造成的。那不管用。您需要使用NumericUpdown.Value属性。

我假设这是您要寻找的ValueChanged事件:

代码语言:javascript
复制
private decimal oldValue = 0;

private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
    NumericUpDown UpDown1 = (NumericUpDown)sender;
    decimal diff = UpDown1.Value - oldValue;
    oldValue = UpDown1.Value;
    int numBank = int.Parse(NumTextBox.Text);
    decimal newValue = numBank + diff;
    NumTextBox.Text = newValue.ToString();
}

编辑

获得NumericUpDown值的旧值和新值之间的区别的唯一方法是手动保存旧值(例如,在成员变量中),并在计算完差异后在ValueChanged中更改它(请参阅上面编辑的代码)。

票数 0
EN

Stack Overflow用户

发布于 2012-07-14 22:35:05

您需要捕获NumericUpDown.ValueChanged事件,并获得NumericUpDown.Value属性:

代码语言:javascript
复制
private void NumericUpDown1ValueChanged(object sender, EventArgs e)
{
    var num = ((NumericUpDown) sender).Value;
    newTextBox.Text = num.ToString();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11487852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档