[英]How to get the current cursor position in NumericUpDown?
我需要在 NumericUpDown 中获取光标的位置,以便在文本更改时触发焦点和千位分隔符后将其放回相同的位置。 我该怎么做?
在这里我找不到oldPosition
。
void nudNofLines_KeyUp(object sender, KeyEventArgs e)
{
nudNofLines.Focus();
nudNofLines.Select(oldPosition, 0);
}
您可以使用 NumericUpDown 控件的.Controls属性来获取其包含的控件,并从该集合中获取所包含的 TextBox。
不要太注意我把this.oldPosition = this.upDownTextBox.SelectionStart; 在 KeyUp 事件中,它只是一个方便我访问 TextBox 的 SelectionStart 属性的地方,您可以使用它来获取/设置光标位置
public Form1()
{
InitializeComponent();
var x = this.nudNofLines.Controls;
upDownTextBox = x.OfType<TextBox>().FirstOrDefault() as TextBox;
}
private TextBox upDownTextBox;
private int oldPosition;
private void nudNofLines_KeyDown(object sender, KeyEventArgs e)
{
this.oldPosition = this.upDownTextBox.SelectionStart;
}
private void nudNofLines_KeyUp(object sender, KeyEventArgs e)
{
nudNofLines.Focus();
nudNofLines.Select(oldPosition, 0);
// Also try:
this.upDownTextBox.SelectionStart = this.oldPosition;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.