微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当我点击文本框时,如何使文本框不可编辑?

如何解决当我点击文本框时,如何使文本框不可编辑?

我有一个 TreeView,里面有 TextBox
它看起来像这样:

enter image description here


我正在努力实现:

  • 当我点击另一个复选框时应该失去焦点
  • 当我点击已编辑的复选框时,它应该会失去焦点,而不是保持可编辑状态。

我可以通过按 Enter 或 Tab 键(或任何其他键)来实现类似的效果

private void OnModuleNameEditKeyDownHandler(object sender,KeyEventArgs e)
{
    if (e.Key == Key.Return || e.Key == Key.Tab)c
    {
        ModuleName.Visibility = Visibility.Visible;
        ModuleNameEdit.Visibility = Visibility.Collapsed;
    }
}

有办法吗? 功能是当我双击 TextBox 时,它变得可编辑,但我想要,当单击超出复选框范围时,在我再次双击它之前不编辑它。

解决方法

创建静态变量来存储工作节点(UIElement/Textbox)。并尝试在键盘焦点丢失时设置此事件。

静态变量:

should

在鼠标双击事件中:

public static TextBox CurrentTextBox = null;

在键盘焦点丢失事件中:

{ 
  CurrentTextBox = sender as TextBox;
  CurrentTextBox.IsReadOnly = false;
  CurrentTextBox.IsVisible = true;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。