我有以下代码:
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
答案 0 :(得分:2)
您正在查看WPF的文档。
WPF System.Windows.Controls.TextBox
控件具有CaretIndex
属性。
WinForms System.Windows.Forms.TextBox
控件没有。
答案 1 :(得分:0)
更改了这一行:
if (this.CaretIndex == this.Text.Length)
到此:
if ((this.Text.Length > 0) && ((this.SelectionStart + this.SelectionLength) == this.Text.Length))
答案 2 :(得分:0)
if(this.SelectionStart == this.Text.Length)
{
e.Handled = true; // throw away keypress
}
瓦尔特