c# - 在我的自定义文本框中读取表单中的所有文本框

标签 c# wpf-controls

我在 winform 项目中使用自定义 TextBox,我在自定义 TextBox 中添加了这个属性:

private TextBox _nextControl;

public TextBox NextControl 
{
    set { _nextControl=value; }
    get { return _nextControl; }
}

我的自定义 TextBox 属性中包含 2 个 TextBox(textBox1 和 textBox2),属性为 NextControl;我可以在表单中看到所有 TextBoxes:

enter image description here

在这种情况下,属性 NextControl 将在我的表单中显示所有 TextBox 以选择我的下一个控件。

但是当我想在我的新 WPF 服装 TextBox 中做同样的事情时,我得到了同样的条件(2 TextBoxes,文本框 1 和文本框 2):

enter image description here

为什么我没有得到相同的结果?以及如何在我的 WPF 项目中执行此操作?


更新:

有关更多说明,在我的 winform 项目中,我使用属性 NextControl 从 UI 属性中选择下一个控件。

protected override void OnKeyDown(KeyEventArgs e) 
{
    if(e.KeyCode==Keys.Down) 
        // select the next TextBox chosen in this TextBox option
        _nextControl.Select(); 
}

因为我已经可以在 UI 中选择下一个 TextBox 的名称,我不想用额外的代码来做到这一点

但这在 WPF 中不起作用:我在属性 NextControl 的窗口中看不到我的 TextBoxes 的名称(如果我选择属性类型 = 文本框)。

p.s. 我的自定义 TextBox 继承自 System.Windows.Controls.TextBox


更新:

我上传了一个带有自定义 TextBox 的 winform 项目 [here]我想要的示例项目的 WPF 可以表现相同。

我已经更新了这个示例的链接。

最佳答案

快速查看您的代码告诉我您的 Windows 窗体用户控件与 WPF 不兼容,特别是 Windows 窗体中的 keyDown 事件解析参数“KeyEventArgs e”,这是一个 System.Windows.Form.Key 但 WPF 解析“System.Windows.Input.Key”和 WPF 没有用于文本框的“Select() 方法。此外,WPF 以非常不同的方式将控件绑定(bind)到 WinForm,因此您的 WinFromuserControl 将无法在 WPF 表单中工作。

如果您想在 WPF 表单中使用类似的行为,则必须编写 WPF 支持的表单。

关于c# - 在我的自定义文本框中读取表单中的所有文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16338924/

相关文章:

c# - 在 wpf 中,有没有办法在卸载控件之前执行代码...?就像卸载事件一样?

c# - 从 GridEX 中的行复制文本

wpf - 在 WPF 上查询 MVVM 设计模式

wpf - 自定义控件数据绑定(bind) wpf

c# - 现代用户界面 : How i can select TAB from Moderntab by code

c# - WPF:以编程方式更改具有自定义样式的控件的颜色

c# - 按值对字典进行排序,该值是具有 DateTime 的对象

c# - X509证书格式

c# - 使用带图像的 C# 代码生成 pdf 文件的大小限制是多少?

c# - 处理迭代器 block 的参数