加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 单击WPF可编辑的ComboBox SelectAll

发布时间:2020-12-15 08:24:19 所属栏目:百科 来源:网络整理
导读:我点击TextBox时如何选择所有文本;我想为可编辑的组合框做同样的事情 – 发现任何东西.我的TextBox代码是 private void OnPreviewMouseDown(Object sender,MouseButtonEventArgs e){ txtBox.SelectAll(); txtBox.Focus(); e.Handled = true;} 如何为可编辑组
我点击TextBox时如何选择所有文本;我想为可编辑的组合框做同样的事情 – 发现任何东西.我的TextBox代码是
private void OnPreviewMouseDown(Object sender,MouseButtonEventArgs e)
{
    txtBox.SelectAll();
    txtBox.Focus();
    e.Handled = true;
}

如何为可编辑组合框做同样的事情?

更新
Combox代码,它为我提供了我想要的输出:

private void cboMouseDown(object sender,MouseButtonEventArgs e)
        {
            var textBox = (cbo.Template.FindName("PART_EditableTextBox",cbo) as TextBox);
            if (textBox != null)
            {
                textBox.SelectAll();
                cbo.Focus();
                e.Handled = true;
            }
        }

但是现在组合框的下拉不起作用,有什么建议吗?

Update-2:而不是PreviewMouseDown – 我尝试过PreviewMouseUp,现在显示下拉列表;但是当一旦点击该框然后尝试打开下拉列表时 – 窗口就会冻结.
但是,我已经做了一个工作,我已经在下面提出了我的答案.如果这是一个正确而安全的解决方案,我会非常感谢您的意见.

解决方法

使用GotFocus事件并选择这样的文本
var comboTextBoxChild = comboBox.FindChild(typeof(TextBox),"PART_EditableTextBox") as TextBox;

    comboTextBoxChild .SelectAll();

这里的combobox是你的可编辑组合名称

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读