如果我有一个带有美国邮政编码掩码(00000-9999)的MaskedTextBox,是否有一种简单的方法可以强制从左到右填充掩码?
例如,使用直接从Visual Studio工具箱中取出MaskedTextBox,用户可以在任何位置单击它,并将插入符号放置在该位置(或掩码的末尾,如果单击它过去)。我不认为这是非常用户友好的...因为它实际上迫使用户手动导航到掩码的开始。
我尝试过实现MouseClick
事件,但这仍然允许箭头键导航(使用Shift和Ctrl修饰符)以及结束键进入掩码。然后我尝试同时实施KeyDown
/ PreviewKeyDown
组合并覆盖ProcessCmdKey
组合Shift,Ctrl,箭头键,End等等,这些看起来都很“hacky”而且非常漂亮笨重。
对于MaskedTextBoxes有多么有用,我真的很惊讶他们不是非常用户友好他们开箱即用......有没有办法实现我忽略的这种行为?
澄清:我不希望阻止用户点击并导航他们已输入的信息。我只是不希望光标移动到下一个输入字符(数字)所在的位置之外(因此,如果当前输入为"123 - "
,则不应允许插入符号直接位于3的右侧,但可以放在那个左边的任何地方。