我正在尝试从 Microsoft 内置的注册表编辑器中重现一个窗口。单击值时从上下文菜单中选择“修改二进制数据...”时会打开该窗口。
目标是使用 Windows 窗体在我的 .NET C# 应用程序中制作一个相同的 (!) 窗口。
问题出在包含二进制数据的窗口中显示的文本框。我尝试过使用 RichTextBox,但它并不像看起来那么简单,尤其是在涉及到编辑数据和此文本框的行为时。
所以我有两个问题:
- 如何使用 Windows 窗体在 C# 中实现相同的文本框?也许您知道重现此文本框的其他一些方法?
- 我还需要这个文本框中使用的字体名称,我没找到:)
谢谢!
最佳答案
我可以想到两种方法来解决这个问题。第一个是 DataGrid,经过精心设计以具有透明的网格线和列之间的精确边距,并带有过滤器以仅强制使用十六进制数字。所有这一切,都与用于 ASCII 显示的富文本框一起设置,您的代码会同步它们之间的选择。
或者,您可以将 DataGrid 替换为一组 TextBox,再次设置不可见边框的样式,在用户添加更多数据时自动将新的文本框添加到该集合。
总而言之,这似乎是一项非常多的工作,尤其是在 WinForms 中 - WPF 可能会使这更容易一些,尤其是样式,但仍然需要大量工作。
关于那个控件的名称——我尝试使用 Spy++ 来嗅探它,它似乎被注册为一个名为“HEX”的窗口类,但我不确定这是否真的能让你到达某个地方:
关于c# - 在 VS 2010 C# .NET Windows 窗体中重现 Microsoft 注册表编辑器 "Edit Binary Value"窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12061763/