如何允许所有数字键。

44 浏览
0 Comments

如何允许所有数字键。

这个问题已经有了答案

可能会有重复:

如何在WPF中使文本框只接受数字输入?

我有一个文本框,我只想接受数字键以及删除和退格键。

我可以很容易地允许删除和退格键,但是否有一种方式可以允许所有数字键作为一组(类似于Key.Numeric)而不是逐个进行?我正在使用WPF,因此是windows.input.key而不是forms.key。

admin 更改状态以发布 2023年5月22日
0
0 Comments

数字键标签为D0D9,但您可能不想依赖这些序列枚举值。

您可以创建一个静态查找表:

static HashSet numKeys = new HashSet { Key.D0, ... };  
   if (numKeys.Contains(k)) ...

0
0 Comments

如果您正在寻找WPF的掩码文本框,可以尝试这个库。
在这里您可以找到一个实现示例。

PS:我找到了一些旧的文本框示例。您需要连接到textChanged事件。我知道这不是完美的解决方案,但可能会给您基本的想法:

int state = 0;
private void IPAddressTxtBox_TextChanged(object sender, TextChangedEventArgs e)
{
            if (state != 1)
            {
                char[] allowedChars = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.' };
                string inputText = this.IPAddressTxtBox.Text;
                string result = "";
                foreach (char c in inputText)
                {
                    if (allowedChars.Contains(c))
                    {
                        result += c.ToString();
                    }
                }
                if (!this.IPAddressTxtBox.Text.Equals(result))
                {
                    this.IPAddressTxtBox.Text = result;
                    this.state = 1;
                    this.IPAddressTxtBox.SelectionStart = this.IPAddressTxtBox.Text.Length;
                }
            }
            else if (state == 1)
            {
                state = 2;
            }
        }

0