在.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} resources/r/n", resNames.Length); txtInfo.Text += "----------/r/n"; foreach(string s in resNames) { txtInfo.Text += s + "/r/n"; 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 += "----------/r/n"; txtInfo.Text += String.Format("Found {0} Bitmaps/r/n", pics.Count); } } } 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值