c# - 单击时 WPF 可编辑 ComboBox SelectAll

标签 c# wpf combobox wpf-controls

我知道如何在单击文本框时选择所有文本;我想对一个可编辑的组合框做同样的事情——找不到任何东西。我的 TextBox 代码是

private void OnPreviewMouseDown(Object sender, MouseButtonEventArgs e)
{
    txtBox.SelectAll();
    txtBox.Focus();
    e.Handled = true;
}

如何对 Editable Combobox 做同样的事情?

更新 为我提供所需输出的 ​​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:我试过 PreviewMouseUp 而不是 PreviewMouseDown,现在确实出现了下拉菜单;但是当单击该框然后尝试打开下拉菜单时 - 窗口会卡住。 但是,我已经解决了我在下面的回答中提出的问题。如果这是我可以接受的正确且安全的解决方案,我将非常感谢您的意见。

最佳答案

使用 GotFocus 事件并像这样选择文本

    var comboTextBoxChild = comboBox.FindChild(typeof(TextBox), "PART_EditableTextBox") as TextBox;

    comboTextBoxChild .SelectAll();

这里的 combobox 是你的 Editable Combobox 的名字

关于c# - 单击时 WPF 可编辑 ComboBox SelectAll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30795981/

相关文章:

c++ - 将可见窗口标题添加到组合框 MFC

c++ - 组合框下拉列表太小以至于旁边出现上下箭头

C# 为什么不能设置动态创建的组合框的 selectedValue?

c# - C# 中的一般异常处理

c# - 是否有一个 C# 类用于跟踪服务方法调用,如堆栈跟踪

c# - Recaptcha 在 asp.net 中不起作用

c# - PDFsharp 缺少 Xps 命名空间

c# - 以编程方式显示对话框,然后将其置于对话框按钮上

c# - 使用文本阴影样式选择 DataGrid 单元格?

c# - 是否可以将相同的 DLL 放入控制台应用程序和 NuGet 依赖项中?