如何在winforms文本框中使用带有不可更改文本的文本?

时间:2011-06-09 19:21:28

标签: c# winforms textbox

我有一个允许创建和运行自动化测试脚本的应用程序。测试脚本本身就是可移植的xml文件,这意味着一旦配置了它,它就可以在任何计算机上运行。

xml文件中保存的配置设置之一是要复制的构建位置。根据计算机根文件夹的设置可能会有所不同,例如在我的计算机上我可能会将F:\Builds\2-QA\ClientA视为另一台需要\\server1\Public\Builds\2-QA\ClientA的机器,如果服务器更改则会是`\ NEWSERVER \公用\构建\ 2-QA \客户端A”。

我只通过让用户在xml中保存最后一部分(例如2-QA\ClientA)来解决这种不确定性,并通过App.Config中的应用程序设置解析根。

问题在于,在用户进入应用程序源目录的GUI中,不清楚他们必须输入的文件夹结构的哪个部分以及App.Config解决了什么。

因此,我想要的是我的文本框中自动填充根目录,但是以只读方式。因此,例如,文本框将显示F:\Builds\,用户可以在最后添加他们想要的文件夹结构,但是他们无法删除F:\Builds\的任何部分。保存时我打算剥离F:\Builds\部分,但如果他们能够(有意或无意)删除F:\Builds\中的字符,则无法依赖。

有关完成此事的任何建议吗?

3 个答案:

答案 0 :(得分:2)

尝试使用MaskedTextBox并将其Mask property设置为您想要前缀的字符串。

类似于:F:\ Builds \ LLLLLLLLLLLL

答案 1 :(得分:0)

我的想法:

忘记让它不可修改。

有一个在文本更改时运行的函数。如果前缀长度为N个字符,请将文本框的前N个字符更改为前缀。

答案 2 :(得分:0)

您可以在文本框前面添加标签吗?标签将包含您不希望更改的文本,这使用户清楚您希望下一位输入文本框。