阻止用户导航到MaskedTextBox的Mask中

时间:2017-10-10 14:58:53

标签: c# winforms maskedtextbox

如果我有一个带有美国邮政编码掩码(00000-9999)的MaskedTextBox,是否有一种简单的方法可以强制从左到右填充掩码?

例如,使用直接从Visual Studio工具箱中取出MaskedTextBox,用户可以在任何位置单击它,并将插入符号放置在该位置(或掩码的末尾,如果单击它过去)。我不认为这是非常用户友好的...因为它实际上迫使用户手动导航到掩码的开始。

我尝试过实现MouseClick事件,但这仍然允许箭头键导航(使用Shift和Ctrl修饰符)以及结束键进入掩码。然后我尝试同时实施KeyDown / PreviewKeyDown组合并覆盖ProcessCmdKey组合Shift,Ctrl,箭头键,End等等,这些看起来都很“hacky”而且非常漂亮笨重。

对于MaskedTextBoxes有多么有用,我真的很惊讶他们不是非常用户友好他们开箱即用......有没有办法实现我忽略的这种行为?

澄清:我希望阻止用户点击并导航他们已输入的信息。我只是不希望光标移动到下一个输入字符(数字)所在的位置之外(因此,如果当前输入为"123 - ",则不应允许插入符号直接位于3的右侧,但可以放在那个左边的任何地方。

0 个答案:

没有答案