我有一个NumericUpDown控件,我希望独立文本框内的值减少或增加,这取决于用户输入的内容(向上还是向下)
我使用什么事件或代码来完成这个任务?我试过了,但是运行时出错了。
“无法将'System.Windows.Forms.NumericUpDown‘类型的对象转换为’System.IConverable‘类型。
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));我做错事了吗?还是其他的问题?
发布于 2012-07-14 22:34:15
此异常是由将NumericUpdown控件转换为整数造成的。那不管用。您需要使用NumericUpdown.Value属性。
我假设这是您要寻找的ValueChanged事件:
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中更改它(请参阅上面编辑的代码)。
发布于 2012-07-14 22:35:05
您需要捕获NumericUpDown.ValueChanged事件,并获得NumericUpDown.Value属性:
private void NumericUpDown1ValueChanged(object sender, EventArgs e)
{
var num = ((NumericUpDown) sender).Value;
newTextBox.Text = num.ToString();
}https://stackoverflow.com/questions/11487852
复制相似问题