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