我有5个文本框,双击可编辑。

下面是我为一个文本框编写的方法。

private void TextBox_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            txtFirstLctrTime.IsReadOnly = false;
            txtFirstLctrTime.Background = new SolidColorBrush(Colors.White);
            txtFirstLctrTime.Foreground = new SolidColorBrush(Colors.Black);
        }

有什么办法可以对所有文本框使用相同的方法,而不是对所有文本编写不同的方法? 我是编程新手

#1楼 票数:3 已采纳

您可以将此处理程序分配给所有文本框。 然后检查发件人,因为这是您实际单击的文本框:

    private void TextBox_MouseDoubleClick(object sender, MouseButtonEventArgs e)
    {
        var textBox = sender as TextBox;

        textBox.IsReadOnly = false;
        textBox.Background = new SolidColorBrush(Colors.White);
        textBox.Foreground = new SolidColorBrush(Colors.Black);
    }

您应该研究MVVM和数据绑定的思想,因为单击处理程序和背后的代码有其局限性。

#2楼 票数:1

将相同的处理程序附加到所有文本框,并使用sender参数获取引发事件的文本框实例:

private void  MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
     TextBox textBox = (TextBox)sender;
    textBox.IsReadOnly = false;
    textBox.Background = new SolidColorBrush(Colors.White);
    textBox.Foreground = new SolidColorBrush(Colors.Black);
}

#3楼 票数:0

是的,有办法。 发送者是可以告诉您哪个控件触发了此事件的参数。 看下面我的例子:

private void TextBox_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
  TextBox tbWhichFiredThisEvent = sender as TextBox;
  if(tbWhichFiredThisEvent != null)
  {
    tbWhichFiredThisEvent.IsReadOnly = false;
    // ... etc.
  }
}

#4楼 票数:0

另一个选择是从TextBox继承并在OnDoubleClick方法上实现您的特定行为。

这样,您可以在不同的视图上拥有此控件,而无需重复代码。

  ask by Richa translate from so

未解决问题?本站智能推荐:

3回复

C#WPF-ListView项到TextBox

所以我有这堂课 我的窗口有一个名为“ lvUsers ”的ListView和一个名为“ label ”的标签。 然后我分配了这样的项目 我的问题是:当我单击ListView中的某个项目时,该项目的ID属性是否有可能显示在名为“ label ”的标签中 。 我的意思是,当我单击一个
5回复

清除WPF中多个TextBox对象的内容

我在 WPF 中有以下 XAML 我想在单击按钮时清除所有文本框的内容。 为此我正在做 有没有更好的方法来做到这一点,而不是使用多个foreach循环? 另外,如何在每个TextBox输入一个值并移至下一个? 我正在尝试下面的代码,但它在所有TextBox对象中插入相同的值:
2回复

在WPF中将多个TextBox绑定到一个结构

如何将两个TextBox对象绑定到System.Windows.Size 结构 ? 绑定只需要朝这个方向工作: (textBox1.Text + textBox2.Text)=>(大小) 用户在UI的TextBoxes中插入宽度和高度后,应创建Size对象。 XAML:
1回复

C#WPF/DataGrid:TextBox是否提供了UserControl没有提供的功能

我有一个UserControl,我想用它来编辑DataGrid中的数据。 UserControl具有用于绑定的TextProperty。 编辑单元格时,将显示TextProperty的内容。 但是,当离开编辑模式时,我项目的TextPropery不会更新。 在这里,我找到了一个解决方案
1回复

WPF:需要一个TextBox才能具有DataGrid单元的某些高级功能

我的应用程序实现了一个简单的“ 计算链” ,就像电子表格一样。 它具有一个TextBox ,用户可以在其中输入一些数值,并且在对其进行编辑后 ,代码将继续更新所有相关字段。 我对TextBox稀缺经验告诉我,每次用户单击一个字符都可以触发一个事件。 此行为不好:假设人员键入值“ 1234
3回复

CollectionViewSource将一项分组到多个组

我正在尝试模仿 msn messenger 联系人列表树视图显示。 我有一个 Contact 对象,它有一个 Groups 属性,它返回一个联系人所属的数组 msngroups,这意味着我有一些如下内容 所以一个联系人可以在多个组中,是否可以使用 CollectionViewSource 生成正确的
1回复

聚焦材质菜单WPF中的第一项

我在 XAML 中有一个 ListView(菜单)。 我正在使用 materialdesinginxaml。 如何聚焦此列表视图的第一项? ListView 元素上的 SelectedIndex="0" 不起作用。
1回复

WPF:仅更改ListBox中最后一项的CornerRadius

我创建了一个带圆角的ListBox 。 除了最后一个,我还为所有ListBoxItem添加了一个底部边框。 但是, ListBoxItem具有正常的方角,因此当将鼠标悬停在或选择第一个或最后一个项目时,您可以看到圆形ListBox角和方形ListBoxItem角之间的重叠。 我不能像设置 Bord