繁体   English   中英

如何在C#中将光标置于Datepicker控件的第一个位置?

[英]How to place cursor in the first position of a Datepicker control in C#?

我在wpf表单(蒙版为00-00-0000)上有一个datepicker控件。 如果日期选择器为空,那么无论我单击日期选择器文本框的位置如何,我都希望光标始终位于第一位置。 我尝试在MouseDown事件上使用SelectionStart属性(设置为0),但无效。 谁能给我个主意吗? 如果您需要更多信息,请告诉我。 任何帮助深表感谢。 谢谢!

您应该找到TextBox元素并订阅事件PreviewMouseUp

1)添加带有Loaded事件的DatePicker

<DatePicker Name="myDatePicker" Loaded="MyDatePicker_OnLoaded" /> 

2)查找TextBox元素(在文本框元素的DatePicker类型中为DatePickerTextBox )并订阅PreviewMouseUp

private void MyDatePicker_OnLoaded(object sender, RoutedEventArgs e)
{
    var tb = (DatePickerTextBox)myDatePicker.Template.FindName("PART_TextBox", myDatePicker);
    if (tb != null)
    {
        tb.PreviewMouseUp += (s, args) =>
        {
            tb.CaretIndex = 0;
        };
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM