位置:海鸟网 > IT > ASP.NET >

在.NET中嵌入和使用资源文件

嵌入和使用资源文件,以下是全部源代码:
  
  using System;
  using System.Drawing;
  using System.Collections;
  using System.ComponentModel;
  using System.Windows.Forms;
  using System.Data;
  using System.Reflection;
  using System.IO;
  using System.Diagnostics;
  
  namespace ResourceDemo
  {
   /// <summary>
   /// Summary description for Form1.
   /// </summary>
   public class Form1 : System.Windows.Forms.Form
   {
   ArrayList pics;
   private System.Windows.Forms.GroupBox groupBox1;
   private System.Windows.Forms.PictureBox pBox;
   private System.Windows.Forms.Button btnDisplay;
   private System.Windows.Forms.TextBox txtInfo;
   /// <summary>
   /// Required designer variable.
   /// </summary>
   private System.ComponentModel.Container components = null;
  
   public Form1()
   {
   //
   // Required for Windows Form Designer support
   //
   InitializeComponent();
  
   // Instantiate our ArrayList
   pics = new ArrayList();
   }
  
   /// <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.pBox = new System.Windows.Forms.PictureBox();
   this.groupBox1 = new System.Windows.Forms.GroupBox();
   this.btnDisplay = new System.Windows.Forms.Button();
   this.txtInfo = new System.Windows.Forms.TextBox();
   this.groupBox1.SuspendLayout();
   this.SuspendLayout();
   //
   // pBox
   //
   this.pBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
   this.pBox.Location = new System.Drawing.Point(8, 8);
   this.pBox.Name = "pBox";
   this.pBox.Size = new System.Drawing.Size(264, 272);
   this.pBox.TabIndex = 0;
   this.pBox.TabStop = false;
   this.pBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
   //
   // groupBox1
   //
   this.groupBox1.Controls.AddRange(new System.Windows.Forms.Control[] {
   this.txtInfo,
   this.btnDisplay});
   this.groupBox1.Location = new System.Drawing.Point(288, 8);
   this.groupBox1.Name = "groupBox1";
   this.groupBox1.Size = new System.Drawing.Size(192, 264);
   this.groupBox1.TabIndex = 1;
   this.groupBox1.TabStop = false;
   //
   // btnDisplay
   //
   this.btnDisplay.Location = new System.Drawing.Point(48, 24);
   this.btnDisplay.Name = "btnDisplay";
   this.btnDisplay.Size = new System.Drawing.Size(96, 23);
   this.btnDisplay.TabIndex = 0;
   this.btnDisplay.Text = "Display Picture";
   this.btnDisplay.Click += new System.EventHandler(this.button1_Click);
   //
   // txtInfo
   //
   this.txtInfo.Location = new System.Drawing.Point(8, 56);
   this.txtInfo.Multiline = true;
   this.txtInfo.Name = "txtInfo";
   this.txtInfo.ReadOnly = true;
   this.txtInfo.Size = new System.Drawing.Size(176, 200);
   this.txtInfo.TabIndex = 2;
   this.txtInfo.Text = "txtInfo";
   //
   // Form1
   //
   this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
   this.ClientSize = new System.Drawing.Size(496, 293);
   this.Controls.AddRange(new System.Windows.Forms.Control[] {
   this.groupBox1,
   this.pBox});
   this.Name = "Form1";
   this.Text = "Form1";
   this.Load += new System.EventHandler(this.Form1_Load);
   this.groupBox1.ResumeLayout(false);
   this.ResumeLayout(false);
  
   }
   #endregion
  
   /// <summary>
   /// The main entry point for the application.
   /// </summary>
   [STAThread]
   static void Main()
   {
   Application.Run(new Form1());
   }
  
   private void button1_Click(object sender, System.EventArgs e)
   {
   // go to a random picture in our arraylist and
   // display it
   Random generator = new Random();
   Bitmap bmp = pics[ generator.Next(pics.Count) ] as Bitmap;
   if(!(null==bmp))
   {
   pBox.Image = bmp;
   }
   bmp = null;
   generator = null;
   }
  
   private void Form1_Load(object sender, System.EventArgs e)
   {
   Stream imgStream = null;
   Bitmap bmp = null;
  
   // get a reference to the current assembly
   Assembly a = Assembly.GetExecutingAssembly();
  
   // get a list of resource names from the manifest
   string [] resNames = a.GetManifestResourceNames();
  
   // populate the textbox with information about our resources
   // also look for images and put them in our arraylist
   txtInfo.Clear();
  
   txtInfo.Text += String.Format("Found {0} resourcesrn", resNames.Length);
   txtInfo.Text += "----------rn";
   foreach(string s in resNames)
   {
   txtInfo.Text += s + "rn";
   if(s.EndsWith(".bmp"))
   {
   // attach to stream to the resource in the manifest
   imgStream = a.GetManifestResourceStream(s);
   if( !(null==imgStream) )
   {
   // create a new bitmap from this stream and
   // add it to the arraylist
   bmp = Bitmap.FromStream( imgStream ) as Bitmap;
   if( !(null==bmp) )
   {
   pics.Add( bmp );
   }
   bmp = null;
   imgStream.Close();
   imgStream = null;
   }
   }
   }
   txtInfo.Text += "----------rn";
   txtInfo.Text += String.Format("Found {0} Bitmapsrn",
   pics.Count);
   }
   }
  }