我的表格中有一个数字版本,并将其最大值设置为2000,但每当我键入一个大于100的数字并保留值时,值会自动重置为100?我尝试使用此代码来纠正错误但行为不正确。
private void answer_Enter(object sender, EventArgs e)
{
// Select the whole answer in the NumericUpDown control.
NumericUpDown answerBox = sender as NumericUpDown;
if (answerBox != null)
{
int lengthOfAnswer = answerBox.Value.ToString().Length;
answerBox.Select(0, lengthOfAnswer);
}
}
答案 0 :(得分:1)
我还没有对此进行全面分析,但在使用此代码时遇到了类似的问题:
<wf:NumericUpDown x:Name="NumericKernalSize" Width="50" Height="22" Visible="True" ValueChanged="NumericKernalSize_ValueChanged" BorderStyle="FixedSingle" Value="201" Minimum="0" Maximum="1000" />
发生的事情是,在将最大值设置为所需的最大值1000之前,值= 201似乎超过了默认最大值100。
如果在值之前设置最大值,则不会出现问题,例如以下对我有用: -
<wf:NumericUpDown x:Name="NumericKernalSize" Width="50" Height="22" Visible="True" ValueChanged="NumericKernalSize_ValueChanged" BorderStyle="FixedSingle" Minimum="0" Maximum="1000" Value="201"/>
希望这对某人有所帮助,因为抓住这个问题很棘手......
干杯...
答案 1 :(得分:0)
此代码选择NumericUpDown
控件的旋转框中的所有文本。为什么?因为当您使用Tab
将控件导航到NumericUpDown
时,将不会选择文本并且输入将从第一个位置开始。因此,如果您已有值5
并输入6
,那么您将获得65
。如果选择了所有文字,则选定的值5
将替换为新值6
。
将值重置为最大值是默认的NumericUpDown
控件行为。如果输入的数字超过允许的最大值,那么当您离开NumericUpDown
控件时,它的值将替换为允许的最大值。
请记住,仅当您离开控件或使用箭头键更改值时,NumericUpDown
的实际值才会更改。当您输入文本时,在焦点离开旋转框之前,值不会改变。
确定您设置的最大值
仅当输入的值超过{em>该特定实例的NumericUpDown
或Maximum
值时,Minimum
才会自动更改其值。因此,您的控件显然已将Maximum
设置为100
。可能你改变了其他一些控件的最大值。