【问题标题】:TextChanged Event of NumericUpDownNumericUpDown 的 TextChanged 事件
【发布时间】:2013-07-06 17:29:40
【问题描述】:

我正在使用 Microsoft Visual C# 2010 Express。当我使用箭头更改 numericUpDown 的值时,我的按钮变为启用。但是当我通过直接更改文本来更改 numericUpDown 的值时,我也想启用我的按钮。

我正在使用以下代码:

private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
    button1.Enabled = true;
}

【问题讨论】:

  • 问题出在哪里?
  • 更改数字后尝试将numericUpDown控件的光标移出
  • 或按回车键。您也可以只订阅 keypress 事件,但请记住,文本尚未经过验证,因此如果您在那里调用该值,您将获得旧值。但是,如果您在 button.Click 事件中调用 numericUpdown 值,它将已经更改。
  • 问题是当我直接更改值时,按钮没有被启用

标签: c# winforms visual-studio-2010 numericupdown


【解决方案1】:

您可能需要使用TextChanged 事件而不是使用ValueChanged。 Value changed 事件需要您在更改值后按 enter 键才能触发 ValueChanged。

MSDN 对NumericUpDown.ValueChanged 事件的评价

要发生 ValueChanged 事件,可以更改 Value 属性 在代码中,通过单击向上或向下按钮,或通过用户输入 控件读取的新值。 新值被读取时 用户点击 ENTER 键或导航离开控件。如果 用户输入一个新值,然后单击向上或向下按钮, ValueChanged 事件会发生两次,MSDN。

绑定 TextChanged 事件。

private void TestForm_Load(object sender, EventArgs e)
{
    numericUpDown1.TextChanged += new EventHandler(numericUpDown1_TextChanged);
}

TextChanged 事件的声明。

void numericUpDown1_TextChanged(object sender, EventArgs e)
{
    button1.Enabled = true;
}

【讨论】:

  • 是否有可能当我更改值时,按钮变为启用,而不按回车??
  • 是的,我已经尝试过了……这里不适用。但是是的,它可以通过按 Enter 按钮来完成。顺便说一句谢谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多