【发布时间】:2014-01-05 16:20:42
【问题描述】:
我正在使用 Visual Studio 2012 用 C# 编写一个应用程序,我需要使用 MaskedTextBox 格式化一些输入文本。用户将输入文本框的文件夹路径,但由于文件夹路径是相对于另一个路径,我需要它以“.\”开头,但我不在乎路径有多长。
现在,我已将框的掩码设置为 \.\\CCCCCCCCCCCCCCCCCC。这很好用,除了当用户单击框时,它会将光标放在他们单击的位置而不是框的开头。
有没有办法将掩码设置为仍然放在“.\”中,但不对后面的字符设置任何限制?
或者有什么方法可以忽略吗?
编辑:更多信息
所以我尝试了一些推荐的东西,但它们似乎不起作用。链接here 的答案效果不佳。虽然我可以将它设置为在单击框时转到该选择点,但每次您需要单击框时它都会转到那里。因此,您无法选择整个框或编辑您键入的部分内容,这对可用性更不利。
我也尝试了 Adelmo 建议的方法。我做了一个这样的偶数处理程序:
public Form1()
{
InitializeComponent();
refreshList();
this.textBoxPrintFolder.GotFocus += new EventHandler(textBoxPrintFolder_GotFocus);
}
private void textBoxPrintFolder_GotFocus(object sender, EventArgs e)
{
this.textBoxPrintFolder.Select(2, 0);
}
这在选择框时有效,但显然单击框不会进入 GotFocus 事件。
我也尝试过使用 MouseEnter 事件。虽然它确实有效,但它需要几秒钟才能移动。不理想。
任何帮助将不胜感激。
【问题讨论】:
-
这并不能真正满足我的需要,而且几乎使它不那么可用。现在,如果您尝试返回或选择任何内容,情况会变得更糟。
标签: c# visual-studio visual-studio-2012 maskedtextbox