【发布时间】:2012-10-04 11:03:05
【问题描述】:
我有一个文本框。它将代表一个数字。当我聚焦它时,我会显示边框以注意到它被选中并且我可以在上面写字。我截获了 OnKeyDown 事件来更改我按下的数字键的 TextBox 内容。
我想隐藏插入符号,因为我不希望插入符号“撒谎”,看起来我可以在 TextBox 中的任何位置写入。
我尝试使用IsReadOnly = true,它隐藏了插入符号。 KeyDown 事件继续工作(因为我使用了 AddHandler 函数),但是当我聚焦 TextBox 时,触摸键盘没有出现。
我想隐藏插入符号,但同时显示触摸键盘。
有什么建议吗?
【问题讨论】:
-
microsoft-metro是一种 ui 风格而不是一种编程语言 - 你在 C#/VB/ 中编码什么???我怀疑您需要创建一个从TextBox继承的控件并覆盖OnPaint事件以抑制插入符号的绘制。一旦你告诉我们你使用的是什么语言,我们可以给你一些例子 -
我正在使用 C# 进行编码。在microsoft-metro 中,您使用 Windows.UI 命名空间进行控件,它有一些限制。例如,它不存在任何 OnPaint 方法或等效方法。
-
抱歉,我没有想到,你说得对——它是基于 WPF 的。
-
如果文本框的行为与您描述的一样,为什么插入符号的位置很重要?无论用户将插入符号放在哪里,输入总是会导致相同的操作:内容将被替换。
-
插入符号可以在数字之前或数字之后。它可能会使用户感到困惑。我更喜欢用画边框来标记整数。
标签: c# textbox windows-8 microsoft-metro caret