c#Numericupdown文本框不显示值,如果我在重置文本后将其设置为最小值



如果我将文本框的值设置为1,最小值为1,则此代码不起作用。

numStartChannel.Minimum = 1;
numStartChannel.ResetText();
numStartChannel.Value = 1;

控件内部实际上有正确的值,但在窗体上仍然显示为空。请注意,重置实际上是在单击事件中运行的,而不是直接在值设置之前。

这个代码确实有效,但我不知道为什么。numStartChannel.Minimum=1;numStartChannel.ResetText((;numStartChannel.Value=2;numStartChannel.Value=1;

最后,这个代码不起作用:

numStartChannel.Minimum = 1;
numStartChannel.ResetText();
numStartChannel.Value = 1;
numStartChannel.Value = 1;

有人能解释这种行为吗?C#Visual Studio 2022。

我已经尝试过您的代码,但得到了相同的结果。

当我移除numStartChannel.ResetText();时,它对我有效。

numStartChannel.Minimum = 1;
numStartChannel.Value = 2;

我的Explination是resetText()将文本设置为默认值。即"0"。那是在你的minium下面。

这也适用于我:

numStartChannel.Minimum = 0;
numStartChannel.ResetText();
numStartChannel.Value = 1;

如果在重置后使用numStartChannel.Value++;,则"值"将正确显示。

我目前不知道为什么在重新设置文本后文本没有更新。我认为这可能是它自身控制中的一个错误。

为什么需要使用resetText?设置该值将更改"文本"。

使用的.NET Framework:4.7.2

从代码的角度来看,我个人从未认为NUD上的Text属性有任何用处;只使用更符合逻辑

您想将NUD重置为最小值吗?

NUD.Value = NUD.Minimum;

避免使用文本;如果你想要数字字符串,你可以自己字符串值:

NUD.Value.ToString("F3"); //eg "123.457" if Value is 123.456789

答案是,如果清除控件的文本,它不会清除值。因此,当我试图再次将值设置回其中以显示时,它并没有触发控件知道值已经更新,因为它没有。不幸的解决方案是还将.Text值设置为任何非空的suc作为空格。请注意,intellisense声称没有这样的属性,但有。之后设置该值会导致控件正确地重新绘制。

相关内容

  • 没有找到相关文章