Freigeben über


ByteViewer-Klasse

Zeigt Bytearrays im hexadezimalen Format, ANSI-Format und Unicode-Format an.

Namespace: System.ComponentModel.Design
Assembly: System.Design (in system.design.dll)

Syntax

'Declaration
Public Class ByteViewer
    Inherits TableLayoutPanel
'Usage
Dim instance As ByteViewer
public class ByteViewer : TableLayoutPanel
public ref class ByteViewer : public TableLayoutPanel
public class ByteViewer extends TableLayoutPanel
public class ByteViewer extends TableLayoutPanel

Hinweise

ByteViewer stellt eine Schnittstelle zum Anzeigen von Daten im hexadezimalen Format, ANSI-Format und Unicode-Format bereit.

Die DisplayMode-Enumeration gibt die Bezeichner an, mit denen der zu verwendende Anzeigemodus angegeben wird. Abhängig vom Inhalt des Bytearrays legt der Auto-Anzeigemodus einen Standardanzeigemodus fest. ByteViewer verwendet einen einfachen Algorithmus, um die Art der Daten zu ermitteln, die im Puffer gespeichert sind. In der hexadezimalen Hexdump-Ansicht werden die hexadezimalen Werte und die zugehörigen Bytedarstellungen (Zeichen) in einem schreibgeschützten Eingabefeld angezeigt. Die Standardspaltenanzahl beträgt 16. In der Ansi-Ansicht und der Unicode-Ansicht wird das Bytearray in einem schreibgeschützten Eingabefeld angezeigt. In diesen Ansichten werden NUL-Zeichen durch Unicode-Blockzeichen ersetzt.

Beispiel

Im folgenden Codebeispiel wird ein ByteViewer-Steuerelement in einem Form gehostet und eine Schnittstelle zum Konfigurieren und Steuern von ByteViewer bereitgestellt.

Imports System
Imports System.Drawing
Imports System.Collections
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Windows.Forms

Public Class ByteViewerForm
   Inherits System.Windows.Forms.Form
   Private button1 As System.Windows.Forms.Button
   Private button2 As System.Windows.Forms.Button
   Private byteviewer As System.ComponentModel.Design.ByteViewer
   
    Public Sub New()
        ' Initialize the controls other than the ByteViewer.
        InitializeForm()

        ' Initialize the ByteViewer.
        byteviewer = New ByteViewer
        byteviewer.Location = New Point(8, 46)
        byteviewer.Size = New Size(600, 338)
        byteviewer.Anchor = AnchorStyles.Left Or AnchorStyles.Bottom Or AnchorStyles.Top
        byteviewer.SetBytes(New Byte() {})
        Me.Controls.Add(byteviewer)
    End Sub

    ' Show a file selection dialog and cues the byte viewer to 
    ' load the data in a selected file.
    Private Sub loadBytesFromFile(ByVal sender As Object, ByVal e As EventArgs)
        Dim ofd As New OpenFileDialog
        If ofd.ShowDialog() <> System.Windows.Forms.DialogResult.OK Then
            Return
        End If
        byteviewer.SetFile(ofd.FileName)
    End Sub

    ' Clear the bytes in the byte viewer.
    Private Sub clearBytes(ByVal sender As Object, ByVal e As EventArgs)
        byteviewer.SetBytes(New Byte() {})
    End Sub

    ' Changes the display mode of the byte viewer according to the 
    ' Text property of the RadioButton sender control.
    Private Sub changeByteMode(ByVal sender As Object, ByVal e As EventArgs)
        Dim rbutton As System.Windows.Forms.RadioButton = _
            CType(sender, System.Windows.Forms.RadioButton)

        Dim mode As DisplayMode
        Select Case rbutton.Text
            Case "ANSI"
                mode = DisplayMode.Ansi
            Case "Hex"
                mode = DisplayMode.Hexdump
            Case "Unicode"
                mode = DisplayMode.Unicode
            Case Else
                mode = DisplayMode.Auto
        End Select

        ' Sets the display mode.
        byteviewer.SetDisplayMode(mode)
    End Sub

    Private Sub InitializeForm()
        Me.SuspendLayout()
        Me.ClientSize = New System.Drawing.Size(680, 440)
        Me.MinimumSize = New System.Drawing.Size(660, 400)
        Me.Size = New System.Drawing.Size(680, 440)
        Me.Name = "Byte Viewer Form"
        Me.Text = "Byte Viewer Form"

        Me.button1 = New System.Windows.Forms.Button
        Me.button1.Location = New System.Drawing.Point(8, 8)
        Me.button1.Size = New System.Drawing.Size(190, 23)
        Me.button1.Name = "button1"
        Me.button1.Text = "Set Bytes From File..."
        Me.button1.TabIndex = 0
        AddHandler Me.button1.Click, AddressOf Me.loadBytesFromFile
        Me.Controls.Add(Me.button1)

        Me.button2 = New System.Windows.Forms.Button
        Me.button2.Location = New System.Drawing.Point(198, 8)
        Me.button2.Size = New System.Drawing.Size(190, 23)
        Me.button2.Name = "button2"
        Me.button2.Text = "Clear Bytes"
        AddHandler Me.button2.Click, AddressOf Me.clearBytes
        Me.button2.TabIndex = 1

        Me.Controls.Add(Me.button2)

        Dim group As New System.Windows.Forms.GroupBox
        group.Location = New Point(418, 3)
        group.Size = New Size(220, 36)
        group.Text = "Display Mode"
        Me.Controls.Add(group)

        Dim rbutton1 As New System.Windows.Forms.RadioButton
        rbutton1.Location = New Point(6, 15)
        rbutton1.Size = New Size(46, 16)
        rbutton1.Text = "Auto"
        rbutton1.Checked = True
        AddHandler rbutton1.Click, AddressOf Me.changeByteMode
        group.Controls.Add(rbutton1)

        Dim rbutton2 As New System.Windows.Forms.RadioButton
        rbutton2.Location = New Point(54, 15)
        rbutton2.Size = New Size(50, 16)
        rbutton2.Text = "ANSI"
        AddHandler rbutton2.Click, AddressOf Me.changeByteMode
        group.Controls.Add(rbutton2)

        Dim rbutton3 As New System.Windows.Forms.RadioButton
        rbutton3.Location = New Point(106, 15)
        rbutton3.Size = New Size(46, 16)
        rbutton3.Text = "Hex"
        AddHandler rbutton3.Click, AddressOf Me.changeByteMode
        group.Controls.Add(rbutton3)

        Dim rbutton4 As New System.Windows.Forms.RadioButton
        rbutton4.Location = New Point(152, 15)
        rbutton4.Size = New Size(64, 16)
        rbutton4.Text = "Unicode"
        AddHandler rbutton4.Click, AddressOf Me.changeByteMode
        group.Controls.Add(rbutton4)
        Me.ResumeLayout(False)
    End Sub

    <STAThread()> _
    Shared Sub Main()
        Application.Run(New ByteViewerForm)
    End Sub
End Class
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Windows.Forms;

namespace ByteViewerForm
{
    public class ByteViewerForm : System.Windows.Forms.Form
    {
        private System.Windows.Forms.Button button1;
        private System.Windows.Forms.Button button2;
        private System.ComponentModel.Design.ByteViewer byteviewer;

        public ByteViewerForm()
        {
            // Initialize the controls other than the ByteViewer.
            InitializeForm();
            
            // Initialize the ByteViewer.
            byteviewer = new ByteViewer();
            byteviewer.Location = new Point( 8, 46 );
            byteviewer.Size = new Size( 600, 338 );
            byteviewer.Anchor = AnchorStyles.Left | AnchorStyles.Bottom | AnchorStyles.Top;
            byteviewer.SetBytes( new byte[] { } );
            this.Controls.Add( byteviewer );
        }

        // Show a file selection dialog and cues the byte viewer to 
        // load the data in a selected file.
        private void loadBytesFromFile(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            if( ofd.ShowDialog() != DialogResult.OK )
                return;
            
            byteviewer.SetFile(ofd.FileName);
        }

        // Clear the bytes in the byte viewer.
        private void clearBytes(object sender, EventArgs e)
        {
            byteviewer.SetBytes( new byte[] { } );
        }

        // Changes the display mode of the byte viewer according to the 
        // Text property of the RadioButton sender control.
        private void changeByteMode(object sender, EventArgs e)
        {
            System.Windows.Forms.RadioButton rbutton = 
                (System.Windows.Forms.RadioButton)sender;
            
            DisplayMode mode;           
            switch( rbutton.Text )
            {
                case "ANSI":
                    mode = DisplayMode.Ansi;
                    break;
                case "Hex":
                    mode = DisplayMode.Hexdump;
                    break;
                case "Unicode":
                    mode = DisplayMode.Unicode;
                    break;
                default:
                    mode = DisplayMode.Auto;
                    break;
            }
            
            // Sets the display mode.
            byteviewer.SetDisplayMode( mode );
        }

        private void InitializeForm()
        {
            this.SuspendLayout();
            this.ClientSize = new System.Drawing.Size(680, 440);
            this.MinimumSize = new System.Drawing.Size(660, 400);
            this.Size = new System.Drawing.Size(680, 440);
            this.Name = "Byte Viewer Form";
            this.Text = "Byte Viewer Form";            
            
            this.button1 = new System.Windows.Forms.Button();            
            this.button1.Location = new System.Drawing.Point(8, 8);
            this.button1.Size = new System.Drawing.Size(190, 23);
            this.button1.Name = "button1";
            this.button1.Text = "Set Bytes From File...";            
            this.button1.TabIndex = 0;
            this.button1.Click += new EventHandler(this.loadBytesFromFile);
            this.Controls.Add(this.button1);

            this.button2 = new System.Windows.Forms.Button();            
            this.button2.Location = new System.Drawing.Point(198, 8);
            this.button2.Size = new System.Drawing.Size(190, 23);
            this.button2.Name = "button2";
            this.button2.Text = "Clear Bytes";     
            this.button2.Click += new EventHandler(this.clearBytes);
            this.button2.TabIndex = 1;
            
            this.Controls.Add(this.button2);

            System.Windows.Forms.GroupBox group = new System.Windows.Forms.GroupBox();
            group.Location = new Point(418, 3);
            group.Size = new Size(220, 36);
            group.Text = "Display Mode";
            this.Controls.Add( group );

            System.Windows.Forms.RadioButton rbutton1 = new System.Windows.Forms.RadioButton();
            rbutton1.Location = new Point(6, 15);
            rbutton1.Size = new Size(46, 16);
            rbutton1.Text = "Auto";
            rbutton1.Checked = true;
            rbutton1.Click += new EventHandler(this.changeByteMode);
            group.Controls.Add( rbutton1 );

            System.Windows.Forms.RadioButton rbutton2 = new System.Windows.Forms.RadioButton();
            rbutton2.Location = new Point(54, 15);
            rbutton2.Size = new Size(50, 16);
            rbutton2.Text = "ANSI";
            rbutton2.Click += new EventHandler(this.changeByteMode);
            group.Controls.Add( rbutton2 );

            System.Windows.Forms.RadioButton rbutton3 = new System.Windows.Forms.RadioButton();
            rbutton3.Location = new Point(106, 15);
            rbutton3.Size = new Size(46, 16);
            rbutton3.Text = "Hex";
            rbutton3.Click += new EventHandler(this.changeByteMode);
            group.Controls.Add( rbutton3 );

            System.Windows.Forms.RadioButton rbutton4 = new System.Windows.Forms.RadioButton();
            rbutton4.Location = new Point(152, 15);
            rbutton4.Size = new Size(64, 16);
            rbutton4.Text = "Unicode";
            rbutton4.Click += new EventHandler(this.changeByteMode);
            group.Controls.Add( rbutton4 );
            this.ResumeLayout(false);            
        }

        [STAThread]
        static void Main() 
        {
            Application.Run(new ByteViewerForm());
        }
    }
}
#using <System.Windows.Forms.dll>
#using <System.dll>
#using <System.Drawing.dll>
#using <System.Design.dll>

using namespace System;
using namespace System::Drawing;
using namespace System::Collections;
using namespace System::ComponentModel;
using namespace System::ComponentModel::Design;
using namespace System::Windows::Forms;

public ref class ByteViewerForm: public System::Windows::Forms::Form
{
private:
   System::Windows::Forms::Button^ button1;
   System::Windows::Forms::Button^ button2;
   System::ComponentModel::Design::ByteViewer^ byteviewer;

public:
   ByteViewerForm()
   {
      // Initialize the controls other than the ByteViewer.
      InitializeForm();
      
      // Initialize the ByteViewer.
      byteviewer = gcnew ByteViewer;
      byteviewer->Location = Point(8,46);
      byteviewer->Size = System::Drawing::Size( 600, 338 );
      byteviewer->Anchor = static_cast<AnchorStyles>(AnchorStyles::Left | AnchorStyles::Bottom | AnchorStyles::Top);
      byteviewer->SetBytes( (array<Byte>^)Array::CreateInstance( Byte::typeid, 0 ) );
      this->Controls->Add( byteviewer );
   }

private:

   // Show a file selection dialog and cues the byte viewer to 
   // load the data in a selected file.
   void loadBytesFromFile( Object^ /*sender*/, EventArgs^ /*e*/ )
   {
      OpenFileDialog^ ofd = gcnew OpenFileDialog;
      if ( ofd->ShowDialog() != ::DialogResult::OK )
            return;

      byteviewer->SetFile( ofd->FileName );
   }

   // Clear the bytes in the byte viewer.
   void clearBytes( Object^ /*sender*/, EventArgs^ /*e*/ )
   {
      byteviewer->SetBytes( (array<Byte>^)Array::CreateInstance( Byte::typeid, 0 ) );
   }

   // Changes the display mode of the byte viewer according to the 
   // Text property of the RadioButton sender control.
   void changeByteMode( Object^ sender, EventArgs^ /*e*/ )
   {
      System::Windows::Forms::RadioButton^ rbutton = dynamic_cast<System::Windows::Forms::RadioButton^>(sender);
      DisplayMode mode;
      if ( rbutton->Text->Equals( "ANSI" ) )
      {
         mode = DisplayMode::Ansi;
      }
      else
      if ( rbutton->Text->Equals( "Hex" ) )
      {
         mode = DisplayMode::Hexdump;
      }
      else
      if ( rbutton->Text->Equals( "Unicode" ) )
      {
         mode = DisplayMode::Unicode;
      }
      else
      {
         mode = DisplayMode::Auto;
      }

      // Sets the display mode.
      byteviewer->SetDisplayMode( mode );
   }

   void InitializeForm()
   {
      this->SuspendLayout();
      this->ClientSize = System::Drawing::Size( 680, 440 );
      this->MinimumSize = System::Drawing::Size( 660, 400 );
      this->Size = System::Drawing::Size( 680, 440 );
      this->Name = "Byte Viewer Form";
      this->Text = "Byte Viewer Form";
      this->button1 = gcnew System::Windows::Forms::Button;
      this->button1->Location = System::Drawing::Point( 8, 8 );
      this->button1->Size = System::Drawing::Size( 190, 23 );
      this->button1->Name = "button1";
      this->button1->Text = "Set Bytes From File...";
      this->button1->TabIndex = 0;
      this->button1->Click += gcnew EventHandler( this, &ByteViewerForm::loadBytesFromFile );
      this->Controls->Add( this->button1 );
      this->button2 = gcnew System::Windows::Forms::Button;
      this->button2->Location = System::Drawing::Point( 198, 8 );
      this->button2->Size = System::Drawing::Size( 190, 23 );
      this->button2->Name = "button2";
      this->button2->Text = "Clear Bytes";
      this->button2->Click += gcnew EventHandler( this, &ByteViewerForm::clearBytes );
      this->button2->TabIndex = 1;
      this->Controls->Add( this->button2 );
      System::Windows::Forms::GroupBox^ group = gcnew System::Windows::Forms::GroupBox;
      group->Location = Point(418,3);
      group->Size = System::Drawing::Size( 220, 36 );
      group->Text = "Display Mode";
      this->Controls->Add( group );
      System::Windows::Forms::RadioButton^ rbutton1 = gcnew System::Windows::Forms::RadioButton;
      rbutton1->Location = Point(6,15);
      rbutton1->Size = System::Drawing::Size( 46, 16 );
      rbutton1->Text = "Auto";
      rbutton1->Checked = true;
      rbutton1->Click += gcnew EventHandler( this, &ByteViewerForm::changeByteMode );
      group->Controls->Add( rbutton1 );
      System::Windows::Forms::RadioButton^ rbutton2 = gcnew System::Windows::Forms::RadioButton;
      rbutton2->Location = Point(54,15);
      rbutton2->Size = System::Drawing::Size( 50, 16 );
      rbutton2->Text = "ANSI";
      rbutton2->Click += gcnew EventHandler( this, &ByteViewerForm::changeByteMode );
      group->Controls->Add( rbutton2 );
      System::Windows::Forms::RadioButton^ rbutton3 = gcnew System::Windows::Forms::RadioButton;
      rbutton3->Location = Point(106,15);
      rbutton3->Size = System::Drawing::Size( 46, 16 );
      rbutton3->Text = "Hex";
      rbutton3->Click += gcnew EventHandler( this, &ByteViewerForm::changeByteMode );
      group->Controls->Add( rbutton3 );
      System::Windows::Forms::RadioButton^ rbutton4 = gcnew System::Windows::Forms::RadioButton;
      rbutton4->Location = Point(152,15);
      rbutton4->Size = System::Drawing::Size( 64, 16 );
      rbutton4->Text = "Unicode";
      rbutton4->Click += gcnew EventHandler( this, &ByteViewerForm::changeByteMode );
      group->Controls->Add( rbutton4 );
      this->ResumeLayout( false );
   }
};

[STAThread]
int main()
{
   Application::Run( gcnew ByteViewerForm );
}
package ByteViewerForm; 

import System.*;
import System.Drawing.*;
import System.Collections.*;
import System.ComponentModel.*;
import System.ComponentModel.Design.*;
import System.Windows.Forms.*;
   
public class ByteViewerForm extends System.Windows.Forms.Form
{
    private System.Windows.Forms.Button button1;
    private System.Windows.Forms.Button button2;
    private System.ComponentModel.Design.ByteViewer byteViewer;

    public ByteViewerForm()
    {
        // Initialize the controls other than the ByteViewer.
        InitializeForm();

        // Initialize the ByteViewer.
        byteViewer = new ByteViewer();
        byteViewer.set_Location(new Point(8, 46));
        byteViewer.set_Size(new Size(600, 338));
        byteViewer.set_Anchor(
            AnchorStyles.Left | AnchorStyles.Bottom | AnchorStyles.Top);
        byteViewer.SetBytes(new ubyte[]{});
        this.get_Controls().Add(byteViewer);
    } //ByteViewerForm

    // Show a file selection dialog and cues the byte viewer to 
    // load the data in a selected file.
    private void LoadBytesFromFile(Object sender, EventArgs e)
    {
        OpenFileDialog ofd = new OpenFileDialog();
        if (ofd.ShowDialog() != DialogResult.OK) {
            return;
        }
        byteViewer.SetFile(ofd.get_FileName());
    } //LoadBytesFromFile

    // Clear the bytes in the byte viewer.
    private void ClearBytes(Object sender, EventArgs e)
    {
        byteViewer.SetBytes(new ubyte[]{});
    } //ClearBytes

    // Changes the display mode of the byte viewer according to the 
    // Text property of the RadioButton sender control.
    private void ChangeByteMode(Object sender, EventArgs e)
    {
        System.Windows.Forms.RadioButton rbutton = 
            (System.Windows.Forms.RadioButton)sender;
        DisplayMode mode;

        if (rbutton.get_Text().Equals("ANSI")) {
            mode = DisplayMode.Ansi;
        }
        else {
            if (rbutton.get_Text().Equals("Hex")) {
                mode = DisplayMode.Hexdump;
            }
            else {
                if (rbutton.get_Text().Equals("Unicode")) {
                    mode = DisplayMode.Unicode;
                }
                else {
                    mode = DisplayMode.Auto;
                }
            }
        }

        // Sets the display mode.
        byteViewer.SetDisplayMode(mode);
    } //ChangeByteMode

    private void InitializeForm()
    {
        this.SuspendLayout();
        this.set_ClientSize(new System.Drawing.Size(680, 440));
        this.set_MinimumSize(new System.Drawing.Size(660, 400));
        this.set_Size(new System.Drawing.Size(680, 440));
        this.set_Name("Byte Viewer Form");
        this.set_Text("Byte Viewer Form");
        this.button1 = new System.Windows.Forms.Button();
        this.button1.set_Location(new System.Drawing.Point(8, 8));
        this.button1.set_Size(new System.Drawing.Size(190, 23));
        this.button1.set_Name("button1");
        this.button1.set_Text("Set Bytes From File...");
        this.button1.set_TabIndex(0);
        this.button1.add_Click(new EventHandler(this.LoadBytesFromFile));
        this.get_Controls().Add(this.button1);
        this.button2 = new System.Windows.Forms.Button();
        this.button2.set_Location(new System.Drawing.Point(198, 8));
        this.button2.set_Size(new System.Drawing.Size(190, 23));
        this.button2.set_Name("button2");
        this.button2.set_Text("Clear Bytes");
        this.button2.add_Click(new EventHandler(this.ClearBytes));
        this.button2.set_TabIndex(1);
        this.get_Controls().Add(this.button2);

        System.Windows.Forms.GroupBox group = 
            new System.Windows.Forms.GroupBox();
        group.set_Location(new Point(418, 3));
        group.set_Size(new Size(220, 36));
        group.set_Text("Display Mode");
        this.get_Controls().Add(group);

        System.Windows.Forms.RadioButton rbutton1 = 
            new System.Windows.Forms.RadioButton();
        rbutton1.set_Location(new Point(6, 15));
        rbutton1.set_Size(new Size(46, 16));
        rbutton1.set_Text("Auto");
        rbutton1.set_Checked(true);
        rbutton1.add_Click(new EventHandler(this.ChangeByteMode));
        group.get_Controls().Add(rbutton1);

        System.Windows.Forms.RadioButton rbutton2 = 
            new System.Windows.Forms.RadioButton();
        rbutton2.set_Location(new Point(54, 15));
        rbutton2.set_Size(new Size(50, 16));
        rbutton2.set_Text("ANSI");
        rbutton2.add_Click(new EventHandler(this.ChangeByteMode));
        group.get_Controls().Add(rbutton2);

        System.Windows.Forms.RadioButton rbutton3 = 
            new System.Windows.Forms.RadioButton();
        rbutton3.set_Location(new Point(106, 15));
        rbutton3.set_Size(new Size(46, 16));
        rbutton3.set_Text("Hex");
        rbutton3.add_Click(new EventHandler(this.ChangeByteMode));
        group.get_Controls().Add(rbutton3);

        System.Windows.Forms.RadioButton rbutton4 = 
            new System.Windows.Forms.RadioButton();
        rbutton4.set_Location(new Point(152, 15));
        rbutton4.set_Size(new Size(64, 16));
        rbutton4.set_Text("Unicode");
        rbutton4.add_Click(new EventHandler(this.ChangeByteMode));
        group.get_Controls().Add(rbutton4);
        this.ResumeLayout(false);
    } //InitializeForm

    /** @attribute STAThread()
     */
    public static void main(String[] args)
    {
        Application.Run(new ByteViewerForm());
    } //main
} //ByteViewerForm

Vererbungshierarchie

System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
       System.Windows.Forms.Control
         System.Windows.Forms.ScrollableControl
           System.Windows.Forms.Panel
             System.Windows.Forms.TableLayoutPanel
              System.ComponentModel.Design.ByteViewer

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

ByteViewer-Member
System.ComponentModel.Design-Namespace
DisplayMode