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

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 に答える