0

我有以下代码:

public class myTextBox : TextBox
{
    protected override void OnKeyPress(KeyPressEventArgs e)
    {
        base.OnKeyPress(e);
        if (Char.IsDigit(e.KeyChar))  // Digits are OK
        {
            // execpt if cursor is at right end
            if (this.CaretIndex == this.Text.Length)
            {
                e.Handled = true;    // throw away keypress
            }
        }
    }
}

我得到了错误:

“MyTextBoxes.myTextBox”不包含“CaretIndex”的定义,也没有扩展方法“CaretIndex”...

即使 CaretIndex 是 TextBox 属性: http: //msdn.microsoft.com/en-us/library/system.windows.controls.textbox.caretindex (v=vs.110).aspx

4

3 回答 3

2

您正在查看 WPF 的文档。

WPFSystem.Windows.Controls.TextBox控件有一个CaretIndex属性。

WinFormsSystem.Windows.Forms.TextBox控件没有。

于 2014-02-23T01:53:32.180 回答
0

改变了这一行:

if (this.CaretIndex == this.Text.Length)

对此:

if ((this.Text.Length > 0) && ((this.SelectionStart + this.SelectionLength) == this.Text.Length))
于 2014-02-23T02:43:11.690 回答
0
if(this.SelectionStart == this.Text.Length)
{
    e.Handled = true;    // throw away keypress
}

瓦尔特

于 2014-02-23T03:55:06.267 回答