Viewing Binary Data Using ByteViewer


Full Text Search: The Key to Better Natural Language Queries for NoSQL in Node.js

Did you know that the .NET framework has a built-in control/class for displaying the hexadecimal byte dump output of binary data? It's one of those rare gems that pretty much stays hidden away unless you actually need to go looking for it.

For those who are wondering what I'm talking about, I'm describing the type of view that loads in a file and displays it in this fashion:

Figure 1: Example binary data byte dump

Although in many cases, you'll very often just handle easy-to-display formats (such as JSON, XML, and CSV), you do occasionally have to be able to display raw binary.

In the example in Figure 1, you're looking at a compiled EXE file, but you could just as easily be looking at a JPG Image, a wave audio file, or just some bizarre, strange custom format.

There are a large number of custom components out there to do this task, and, with a little bit of forward thinking and some creative use of "String.Format" and a Listbox control, it's not too difficult to roll your own and format the display in any manner you want.

The .NET runtime itself, however, actually has (and has had for quite some time now) a control already built in, that will perform this exact task, simply, quickly, and elegantly for you.

Let's have a look at how to use it.

Create yourself a simple Windows Forms application. (As far as I know, you can't use this control in WPF. If anyone knows otherwise, however, please let me know in the comments so I can add it.)

Once you have a project open, add a File Open Dialog to your form, so that it looks something like this:

Figure 2: Visual Studio form designer with an 'openFile' dialog added

You'll notice from Figure 2 that I've also added a menu strip, a panel, and a couple of Menu items so I can load in a binary file and exit the application.

Press F7 to open the code behind for your form, and make sure the code looks as follows:

using System;
using System.Windows.Forms;

namespace ByteViewer
   public partial class Form1 : Form
      private System.ComponentModel.Design.ByteViewer

      public Form1()
         _myByteViewer = new System.ComponentModel.Design.ByteViewer
            {Dock = DockStyle.Fill};

      private void OpenToolStripMenuItemClick(object sender,
         EventArgs e)
         if(openFile.ShowDialog() == DialogResult.OK)

      private void ExitToolStripMenuItemClick(object sender,
         EventArgs e)


Make sure that you hook the two menu event handlers up to your menu by clicking them, and also note that the blue panel used in the form design has been given the name 'viewerPanel'.

If you have everything set up as I do, you should be able to run the application. Then, choose 'FIle->Open' from the menu, select a file, and see the file's binary contents in your form:


Figure 3: Our Byte Viewer form showing an open binary file (in this case, a Zip)

As you can see, it's fast and easy to use, ideal if you just need a quick and dirty hex data viewer.

Got a sticky .NET problem you need describing? Shout me up in 'Lidnug' on Linked-in, or come find me on Twitter as @Shawty_ds and let me know. I'll most likely write a post about it.

Related Articles


  • Binary editor?!

    Posted by Zibri on 11/06/2016 12:28pm

    There is also a Design.BinaryEditor Do you know how to use it?

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • As all sorts of data becomes available for storage, analysis and retrieval - so called 'Big Data' - there are potentially huge benefits, but equally huge challenges...
  • The agile organization needs knowledge to act on, quickly and effectively. Though many organizations are clamouring for "Big Data", not nearly as many know what to do with it...
  • Cloud-based integration solutions can be confusing. Adding to the confusion are the multiple ways IT departments can deliver such integration...

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date