【问题标题】:Recommendations for a Hex Viewer Control for Windows.Forms? [closed]Windows.Forms 十六进制查看器控件的建议? [关闭]
【发布时间】:2010-03-25 22:24:24
【问题描述】:

我需要能够在十六进制视图中显示内容,就像 WinHex 中的这样

Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
00000000   EF BB BF 0D 0A 4D 69 63  72 6F 73 6F 66 74 20 56   ..Microsoft V
00000010   69 73 75 61 6C 20 53 74  75 64 69 6F 20 53 6F 6C   isual Studio Sol
00000020   75 74 69 6F 6E 20 46 69  6C 65 2C 20 46 6F 72 6D   ution File, Form
00000030   61 74 20 56 65 72 73 69  6F 6E 20 31 30 2E 30 30   at Version 10.00
00000040   0D 0A 23 20 56 69 73 75  61 6C 20 53 74 75 64 69   ..# Visual Studi
00000050   6F 20 32 30 30 38 0D 0A  50 72 6F 6A 65 63 74 28   o 2008..Project(
00000060   22 7B 46 31 38 34 42 30  38 46 2D 43 38 31 43 2D   "{F184B08F-C81C-
00000070   34 35 46 36 2D 41 35 37  46 2D 35 41 42 44 39 39   45F6-A57F-5ABD99

请推荐一个控件。谢谢。

【问题讨论】:

标签: c# .net vb.net winforms


【解决方案1】:

.NET Framework 中有一个直接可用的ByteViewer Control。以下是如何在示例 Winforms C# 应用程序中使用它(注意:您需要引用 System.Design 程序集):

public Form1()
{
    InitializeComponent();
    ...
    ByteViewer bv = new ByteViewer();
    bv.SetFile(@"c:\windows\notepad.exe"); // or SetBytes
    Controls.Add(bv);
}

下面是它的样子:

【讨论】:

  • 你几乎是整个互联网上唯一提到这一点的人。这是一个快速、简洁的控件。不可大规模扩展,也许为什么它没有被提及很多。不过,谢谢!
  • 这很好,但是即使添加了System.ComponentModel.Design 引用我也找不到它,我在 C# 中使用 winforms。
  • @Omarrrio - 仔细阅读答案,您需要添加一个引用程序集(dll),而不仅仅是一个命名空间
  • @SimonMourier 啊抱歉,我不知道有什么区别,谢谢。
  • @tom - 仔细阅读答案,你也有一个 SetBytes 方法
【解决方案2】:

我一直使用http://sourceforge.net/projects/hexbox/,它有一个HexEditor控件,但也可以在只读模式下使用。

【讨论】:

  • 这似乎需要一个外部文件作为输入。有什么东西可以将字节数组作为输入吗?我宁愿不必写出一个临时文件,以便它可以读回它。
  • 是的,您可以使用 DynamicByteProvider,它有一个由字节数组支持的构造函数并设置 ByteProvider 属性。
【解决方案3】:

Wpf Hexeditor 是一个功能强大且完全可自定义的用户控件,用于将文件或流编辑为十六进制、十进制和二进制。

您可以在 Wpf 或 WinForm 应用程序中非常轻松地使用它。下载代码并测试 Wpf(C#、VB.NET)和 WinForm (C#) 示例。

https://github.com/abbaye/WPFHexEditorControl

<!-- XAML -->
<Control:HexaEditor/>
<Control:HexaEditor Width="NaN" Height="NaN"/>
<Control:HexaEditor Width="Auto" Height="Auto"/>
<Control:HexaEditor FileName={Binding FileNamePath} Width="Auto" Height="Auto"/>

【讨论】:

  • 您最好添加更多关于此的教程。
【解决方案4】:

你可以在

试试我的Simple HexView Control项目

http://simplehexviewcontrol.codeplex.com/

Simple HexControl (HexView) 是一个经典的 Windows 窗体控件。它通过分组实现了字节的十六进制视图。它速度极快,仅呈现窗口的可见帧,并支持绘制各个字节组,而无需重新绘制整个窗口。

【讨论】:

    猜你喜欢
    • 2013-01-15
    • 2018-03-26
    • 2010-10-24
    • 1970-01-01
    • 1970-01-01
    • 2010-10-17
    • 2018-01-05
    • 1970-01-01
    • 2021-12-27
    相关资源
    最近更新 更多