如何在 WPF 文本框中仅接受整数 [重复]

     2023-02-22     117

关键词:

【中文标题】如何在 WPF 文本框中仅接受整数 [重复]【英文标题】:How to accept only integers in a WPF textbox [duplicate] 【发布时间】:2013-01-26 15:53:24 【问题描述】:

你知道如何在文本框中限制用户输入吗,这个文本框只接受整数?顺便说一句,我正在为 Windows 8 开发。我已经尝试过从 SO 和 Google 搜索的内容,但它不起作用,

【问题讨论】:

你看过 char.IsNumeric 方法吗..?在 Key Press 或 Key Down 事件上检查这个..? 是的,我有一条警告消息 keychar is not found 最好显示一些代码 .. 因为您可以使用 KeyEvents 来获得它...如果不是,您可能需要在该字段上设置一个掩码 【参考方案1】:

如果您不想下载 WPF 工具包(它同时具有 IntegerUpDown 控件或 MaskedTextBox),您可以使用 UIElement.PreviewTextInputDataObject.Pasting 事件根据Masked TextBox In WPF 上的这篇文章改编自实现它.

这是您要在窗口中放置的内容:

<Window x:Class="WpfApp1.MainWindow" Title="MainWindow" 
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <StackPanel Orientation="Vertical" Width="100" Height="100"  HorizontalAlignment="Left" VerticalAlignment="Top">

        <TextBlock Name="NumericLabel1"  Text="Enter Value:"  />
        <TextBox   Name="NumericInput1" 
                   PreviewTextInput="MaskNumericInput" 
                   DataObject.Pasting="MaskNumericPaste"  />
    </StackPanel>
</Window>

然后在你的代码隐藏中实现 C#:

public partial class MainWindow : Window

    public MainWindow()
    
        InitializeComponent();
    

    private void MaskNumericInput(object sender, TextCompositionEventArgs e)
    
        e.Handled = !TextIsNumeric(e.Text);
    

    private void MaskNumericPaste(object sender, DataObjectPastingEventArgs e)
    
        if (e.DataObject.GetDataPresent(typeof(string)))
        
            string input = (string)e.DataObject.GetData(typeof(string));
            if (!TextIsNumeric(input)) e.CancelCommand();
        
        else
        
            e.CancelCommand();
        
    

    private bool TextIsNumeric(string input)
    
        return input.All(c => Char.IsDigit(c) || Char.IsControl(c));
    

【讨论】:

会试试这个。谢谢!【参考方案2】:
public class IntegerTextBox : TextBox

    protected override void OnTextChanged(TextChangedEventArgs e)
    
        base.OnTextChanged(e);

        Text = new String(Text.Where(c => Char.IsDigit(c)).ToArray());
        this.SelectionStart = Text.Length;
    

【讨论】:

【参考方案3】:

在最原始的级别,您可以拦截 KeyUp 事件或 TextChanged 以查看正在添加的字符,如果无法解析为 Int,则将其删除。

同时检查 - Only accept digits for textbox 和Masking Textbox to accept only decimals

【讨论】:

【参考方案4】:

您可以使用整数上下控制。 WPF 工具包中有一个可以解决问题:

https://wpftoolkit.codeplex.com/wikipage?title=IntegerUpDown

【讨论】:

如何在 WPF 文本框中选择多个文本段?

】如何在WPF文本框中选择多个文本段?【英文标题】:HowcanIselectmultipletextsegmentsinaWPFtextbox?【发布时间】:2011-02-1822:58:44【问题描述】:是否可以在WPF文本框中选择多个文本部分?例如,对于包含字符串THISISATEST的文本框,我希... 查看详情

如何为文本框设置数据类型[重复]

】如何为文本框设置数据类型[重复]【英文标题】:HowtoSetadatatypeforatextbox[duplicate]【发布时间】:2013-03-3018:01:54【问题描述】:我正在构建一个连接到私有数据库的小型应用程序。在我的应用程序中,我在单击按钮后在数据库中... 查看详情

如何在没有焦点的情况下突出显示/选择 wpf 文本框中的文本?

】如何在没有焦点的情况下突出显示/选择wpf文本框中的文本?【英文标题】:howtohighlight/selecttextinawpftextboxwithoutfocus?【发布时间】:2012-08-1903:56:27【问题描述】:我想在wpf文本框中突出显示选定的文本,而文本框没有聚焦。在... 查看详情

Python:如何从数据框中仅提取年月日[重复]

】Python:如何从数据框中仅提取年月日[重复]【英文标题】:Python:Howtoextractonlytheyear-month-dayfromdataframe[duplicate]【发布时间】:2020-12-2419:27:42【问题描述】:数据框df中的date列采用以下格式:2018-12-2019:30:00但我想创建一个只包含日... 查看详情

动态地,在运行时,如何在 WPF 中更改文本框中某些单词的颜色?

】动态地,在运行时,如何在WPF中更改文本框中某些单词的颜色?【英文标题】:Dynamically,atrun-time,howtochangethecolorofsomewordsinatextboxinWPF?【发布时间】:2018-12-2400:18:50【问题描述】:我正在尝试在WPF中的文本框中更改某些单词的颜... 查看详情

在 wpf 文本框中开始一个新行

...包含文本框的小型GUI。我希望用户能够开始新的生产线。如何让用户在WPF文本框中开始新行(使用\\n或\\r)?我希望用户能够通过按“enter”来开始新的一行。【问题讨论】:【参考方案1】:除了AcceptReturn=true属性,如果用户想... 查看详情

字体不支持符号时如何在WPF文本框中插入版权、商标、服务标记等

】字体不支持符号时如何在WPF文本框中插入版权、商标、服务标记等【英文标题】:Howtoinsertcopyright,trademark,servicemark,etc.intoWPFtextboxwhenfontdoesn\'tsupportsymbols【发布时间】:2011-01-1012:32:47【问题描述】:我们有一个WPF应用程序,它... 查看详情

如何在 WPF 列表框中添加标题

】如何在WPF列表框中添加标题【英文标题】:HowtoaddheadersinWPFListBox【发布时间】:2021-12-1817:58:40【问题描述】:如何在WPF的ListBox中添加标题?我有下面的代码,并且“标题-..”文本在哪里我想要下面所有项目的标题/组名称,直... 查看详情

在 Actionscript 中仅接受数字的 2 个文本字段之间切换启用/禁用

】在Actionscript中仅接受数字的2个文本字段之间切换启用/禁用【英文标题】:Toggleenable/disablebetween2textfieldswhichacceptonlynumbersinActionscript【发布时间】:2015-05-2104:50:13【问题描述】:我有2个文本字段,Tx1和Tx2只接受数字。我的要求... 查看详情

如何防止用户在文本框中输入特殊字符[重复]

】如何防止用户在文本框中输入特殊字符[重复]【英文标题】:Howtopreventusersfromtypingspecialcharactersintextbox[duplicate]【发布时间】:2016-01-0605:22:13【问题描述】:我需要验证文本框上的密码条目,我有一些要求要完成以允许创建用户... 查看详情

如何从其他 WPF 窗口的文本框中调用字符串 [关闭]

】如何从其他WPF窗口的文本框中调用字符串[关闭]【英文标题】:HowcanIcallthestringfromatextboxfromotherWPFwindow[closed]【发布时间】:2021-10-3123:32:36【问题描述】:我在从另一个wpf窗口中的文本框中获取字符串时遇到了一点问题。有人可... 查看详情

如何在具有(流体高度)的响应框中垂直居中文本[重复]

】如何在具有(流体高度)的响应框中垂直居中文本[重复]【英文标题】:HowdoIverticallycenteringtextinsidearesponsiveboxthathasa(fluidheight)[duplicate]【发布时间】:2013-09-1603:24:22【问题描述】:我正在构建一个响应式网站并使用网格系统。... 查看详情

如何检查是不是在 KeyUp 事件的文本框中输入了数字或字母 [重复]

】如何检查是不是在KeyUp事件的文本框中输入了数字或字母[重复]【英文标题】:howtocheckwhetheranumberorletterhasbeenenteredinatextboxonKeyUpEvent[duplicate]如何检查是否在KeyUp事件的文本框中输入了数字或字母[重复]【发布时间】:2021-02-1115:11... 查看详情

在 WPF 文本框中删除文件

】在WPF文本框中删除文件【英文标题】:DroppingafileinaWPFTextBox【发布时间】:2014-09-2210:53:03【问题描述】:我在Google和StackOverflow上多次发现这个问题。这些解决方案都不起作用。我有一个文本框。AllowDrop设置为true。我首先尝试... 查看详情

Win32 中仅接受文本框(编辑控件)中的字符和空格

...0-0909:24:53【问题描述】:当我们输入文本框时,我不知道如何让文本框只接受字符和空格。我只是认为我们可以使用WM_Keydown但我只是猜测它不知道我们输入的是哪个编辑控件。这是我创建表单的代码voidCREATE_EDITN 查看详情

WPF文本框中的垂直对齐

...个用于密码,两者都有FontSize=20,但文本显示如下:我该如何解决这个问题?Xaml:<TextBoxGrid.Row="1"Grid.Column="1"Height="40"BorderThickness 查看详情

如何在熊猫数据框中仅填充选定列的空值? [复制]

】如何在熊猫数据框中仅填充选定列的空值?[复制]【英文标题】:HowdoIfillnullvaluesofonlyselectedcolumnsinpandasdataframe?[duplicate]【发布时间】:2020-07-1400:05:59【问题描述】:我的数据框由多个具有NaN值的列组成。我想用0替换特定列(... 查看详情

Pandas:如何在数据透视表数据框中仅添加最新日期

】Pandas:如何在数据透视表数据框中仅添加最新日期【英文标题】:Pandas:Howtoextraonlylatestdateinpivottabledataframe【发布时间】:2018-01-1716:03:07【问题描述】:如何根据图片中的数据透视表创建一个新的数据框,该数据框仅包含每个... 查看详情