Csharp/C Sharp/GUI Windows Form/Editor — различия между версиями

Материал из .Net Framework эксперт
Перейти к: навигация, поиск
м (1 версия)
 
(нет различий)

Текущая версия на 14:32, 26 мая 2010

Hex View

<source lang="csharp"> /* C# Programming Tips & Techniques by Charles Wright, Kris Jamsa Publisher: Osborne/McGraw-Hill (December 28, 2001) ISBN: 0072193794

  • /

using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; using System.IO; using System.Text; namespace HexView {

 /// <summary>
 /// Summary description for Form1.
 /// </summary>
 public class frmHexView : System.Windows.Forms.Form
 {
   private System.Windows.Forms.MainMenu mainMenu1;
   private System.Windows.Forms.MenuItem mnuFileMenu;
   private System.Windows.Forms.MenuItem mnuFileOpen;
   private System.Windows.Forms.MenuItem mnuFileClose;
   private System.Windows.Forms.MenuItem mnuFileExit;
   private System.Windows.Forms.MenuItem mnuAboutMenu;
   private System.Windows.Forms.MenuItem mnuAboutHexView;
   private System.Windows.Forms.TextBox textBox1;
   private System.Windows.Forms.OpenFileDialog openFileDialog1;
   /// <summary>
   /// Required designer variable.
   /// </summary>
   private System.ruponentModel.Container components = null;
   public frmHexView()
   {
     //
     // Required for Windows Form Designer support
     //
     InitializeComponent();
     //
     // TODO: Add any constructor code after InitializeComponent call
     //
     textBox1.BackColor = Color.White;
     this.openFileDialog1.Filter = "Text files (*.txt)|*.txt|Wide Character Files (*.wcs)|*.wcs|All Files (*.*)|*.*||";
     textBox1.Font = new Font ("Courier New", 12);
   }
   /// <summary>
   /// Clean up any resources being used.
   /// </summary>
   protected override void Dispose( bool disposing )
   {
     if( disposing )
     {
       if (components != null) 
       {
         components.Dispose();
       }
     }
     base.Dispose( disposing );
   }
   #region Windows Form Designer generated code
   /// <summary>
   /// Required method for Designer support - do not modify
   /// the contents of this method with the code editor.
   /// </summary>
   private void InitializeComponent()
   {
     this.mainMenu1 = new System.Windows.Forms.MainMenu();
     this.mnuFileMenu = new System.Windows.Forms.MenuItem();
     this.mnuFileOpen = new System.Windows.Forms.MenuItem();
     this.mnuFileClose = new System.Windows.Forms.MenuItem();
     this.mnuFileExit = new System.Windows.Forms.MenuItem();
     this.mnuAboutMenu = new System.Windows.Forms.MenuItem();
     this.mnuAboutHexView = new System.Windows.Forms.MenuItem();
     this.textBox1 = new System.Windows.Forms.TextBox();
     this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
     this.SuspendLayout();
     // 
     // mainMenu1
     // 
     this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
                                           this.mnuFileMenu,
                                           this.mnuAboutMenu});
     // 
     // mnuFileMenu
     // 
     this.mnuFileMenu.Index = 0;
     this.mnuFileMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
                                           this.mnuFileOpen,
                                           this.mnuFileClose,
                                           this.mnuFileExit});
     this.mnuFileMenu.Text = "File";
     // 
     // mnuFileOpen
     // 
     this.mnuFileOpen.Index = 0;
     this.mnuFileOpen.Text = "Open";
     this.mnuFileOpen.Click += new System.EventHandler(this.OnFileOpen);
     // 
     // mnuFileClose
     // 
     this.mnuFileClose.Index = 1;
     this.mnuFileClose.Text = "Close";
     this.mnuFileClose.Click += new System.EventHandler(this.OnFileClose);
     // 
     // mnuFileExit
     // 
     this.mnuFileExit.Index = 2;
     this.mnuFileExit.Text = "Exit";
     this.mnuFileExit.Click += new System.EventHandler(this.OnFileExit);
     // 
     // mnuAboutMenu
     // 
     this.mnuAboutMenu.Index = 1;
     this.mnuAboutMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
                                            this.mnuAboutHexView});
     this.mnuAboutMenu.Text = "About";
     // 
     // mnuAboutHexView
     // 
     this.mnuAboutHexView.Index = 0;
     this.mnuAboutHexView.Text = "About HexView";
     this.mnuAboutHexView.Click += new System.EventHandler(this.OnAboutAbout);
     // 
     // textBox1
     // 
     this.textBox1.Dock = System.Windows.Forms.DockStyle.Fill;
     this.textBox1.Multiline = true;
     this.textBox1.Name = "textBox1";
     this.textBox1.ReadOnly = true;
     this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Both;
     this.textBox1.Size = new System.Drawing.Size(592, 317);
     this.textBox1.TabIndex = 0;
     this.textBox1.Text = "";
     this.textBox1.WordWrap = false;
     // 
     // frmHexView
     // 
     this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
     this.ClientSize = new System.Drawing.Size(592, 317);
     this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                     this.textBox1});
     this.Menu = this.mainMenu1;
     this.Name = "frmHexView";
     this.Text = "Hex View";
     this.ResumeLayout(false);
   }
   #endregion
   /// <summary>
   /// The main entry point for the application.
   /// </summary>
   [STAThread]
   static void Main() 
   {
     Application.Run(new frmHexView());
   }
   byte [] Data;
   private void OnFileOpen(object sender, System.EventArgs e)
   {
     if (openFileDialog1.ShowDialog () == DialogResult.Cancel)
       return;
     FileStream strm;
     try
     {
       strm = new FileStream (openFileDialog1.FileName, FileMode.Open, FileAccess.Read);
     }
     catch (Exception)
     {
       string str = "Cannot open " + openFileDialog1.FileName + " for reading";
       MessageBox.Show (str, "HexView");
       return;
     }
     if (Data != null)
       Array.Clear (Data, 0, Data.Length);
     Data = new Byte[strm.Length];
     strm.Read (Data, 0, (int) strm.Length);
     strm.Close();
     FillTextBox ();
     int index = openFileDialog1.FileName.LastIndexOf ("\\");
     this.Text = this.Text + " - " + openFileDialog1.FileName.Substring (index + 1);
   }
   private void FillTextBox ()
   {
     textBox1.Text = "";
     StringBuilder strb = new StringBuilder ();
     StringBuilder text = new StringBuilder ();
     char [] ch = new char [1];
     for (int x = 0; x < Data.Length; x += 16)
     {
       text.Length = 0;
       strb.Length = 0;
       for (int y = 0; y < 16; ++y)
       {
         if ((x + y) > (Data.Length - 1))
           break;
         ch[0] = (char) Data[x + y];
         strb.AppendFormat ("{0,0:X2} ", (int) ch[0]);
         if (((int) ch[0] < 32) || ((int) ch[0] > 127))
           ch[0] = ".";
         text.Append (ch);
       }
       text.Append ("\r\n");
       while (strb.Length < 52)
         strb.Append (" ");
       strb.Append (text.ToString());
       textBox1.Text += strb.ToString ();
     }
     textBox1.Select (0, 0);
   }
   private void OnFileClose(object sender, System.EventArgs e)
   {
     textBox1.Text = "";
     this.Text = "Hex View";
   }
   private void OnFileExit(object sender, System.EventArgs e)
   {
     Application.Exit ();
   }
   private void OnAboutAbout(object sender, System.EventArgs e)
   {
     About about = new About();
     about.ShowDialog();
   }
 }
 /// <summary>
 /// Summary description for About.
 /// </summary>
 public class About : System.Windows.Forms.Form
 {
   private System.Windows.Forms.Label label1;
   private System.Windows.Forms.Label label2;
   private System.Windows.Forms.Button button1;
   /// <summary>
   /// Required designer variable.
   /// </summary>
   private System.ruponentModel.Container components = null;
   public About()
   {
     //
     // Required for Windows Form Designer support
     //
     InitializeComponent();
     //
     // TODO: Add any constructor code after InitializeComponent call
     //
   }
   /// <summary>
   /// Clean up any resources being used.
   /// </summary>
   protected override void Dispose( bool disposing )
   {
     if( disposing )
     {
       if(components != null)
       {
         components.Dispose();
       }
     }
     base.Dispose( disposing );
   }
   #region Windows Form Designer generated code
   /// <summary>
   /// Required method for Designer support - do not modify
   /// the contents of this method with the code editor.
   /// </summary>
   private void InitializeComponent()
   {
     this.button1 = new System.Windows.Forms.Button();
     this.label1 = new System.Windows.Forms.Label();
     this.label2 = new System.Windows.Forms.Label();
     this.SuspendLayout();
     // 
     // button1
     // 
     this.button1.Location = new System.Drawing.Point(148, 112);
     this.button1.Name = "button1";
     this.button1.Size = new System.Drawing.Size(104, 24);
     this.button1.TabIndex = 2;
     this.button1.Text = "OK";
     this.button1.Click += new System.EventHandler(this.button1_Click);
     // 
     // label1
     // 
     this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
     this.label1.Location = new System.Drawing.Point(36, 16);
     this.label1.Name = "label1";
     this.label1.Size = new System.Drawing.Size(344, 56);
     this.label1.TabIndex = 0;
     this.label1.Text = "A Simple Hex Viewer";
     this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
     // 
     // label2
     // 
     this.label2.Location = new System.Drawing.Point(36, 80);
     this.label2.Name = "label2";
     this.label2.Size = new System.Drawing.Size(344, 16);
     this.label2.TabIndex = 1;
     this.label2.Text = "C# Tips and Techniques";
     this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
     // 
     // About
     // 
     this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
     this.ClientSize = new System.Drawing.Size(416, 149);
     this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                     this.button1,
                                     this.label2,
                                     this.label1});
     this.Name = "About";
     this.Text = "About Hex View";
     this.ResumeLayout(false);
   }
   #endregion
   private void button1_Click(object sender, System.EventArgs e)
   {
     this.Close ();
   }
 }
 

}

      </source>