不允许在数字增减框中输入文本

5

我有一个C#的WinForm,在上面有一个NumericUpDown控件。我希望该控件仅在点击其向上或向下箭头后更改其值,并阻止手动输入文本,是否有NumericUpDown的属性可以实现此功能,或者任何其他实现方式?


你有没有考虑过使用你的用户可能希望能够输入数字。这种事情会让我们声名狼藉,你知道吗? - Tony Hopkinson
3个回答

12
numericUpDown.ReadOnly = true;

3
它禁用了文本框的输入,但上下按钮仍然可以改变其值。 - Simon Brydon
1
哦,我明白了,很抱歉你的答案是最简单的,但他也应该改变背景颜色,因为只读时它很丑陋。-.- - LostPhysx
2
要矫正丑陋的灰色背景,请将numericUpDown.Backcolor设置为Color.White,或从UI中将backcolor设置为ActiveCaptionText。 - Salim

2
请查看下面的代码,它符合您的要求并可能解决您的问题:
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.Load += new EventHandler(Form1_Load);
        }

        void Form1_Load(object sender, EventArgs e)
        {
            numericUpDown1.KeyDown+=new KeyEventHandler(numericUpDown1_KeyDown);
        }

        void numericUpDown1_KeyDown(object sender, KeyEventArgs e)
        {
            e.SuppressKeyPress = true;
            return;
        }
    }

0

您可以禁用CanFocus属性,这样用户就无法聚焦文本区域,但仍然可以单击上/下按钮。

numericUpDown1.CanFocus = false;

1
CanFocus 属性无法被设置。 - Salim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接