欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C# WinForms 應用中使用嵌入資源(Embedded Resources)

admin
2024年10月8日 9:9 本文熱度 540

在 C# Windows Forms (WinForms) 應用開發中,經常會遇到需要將文件嵌入到程序集中的情況。這些文件可以是圖像、文檔、音頻、視頻或任何其他類型的文件。通過將這些文件作為嵌入資源(Embedded Resources)包含在程序集中,可以簡化應用的部署和分發,確保這些資源始終可用,且不易丟失或被篡改。

應用場景

  1. 圖像和圖標:將應用程序使用的圖標、按鈕圖像、背景圖像等嵌入到程序集中。

  2. 配置文件:將配置文件嵌入程序集,避免外部配置文件丟失或被錯誤修改。

  3. 本地化資源:存儲多語言文本、圖像等資源,支持應用的國際化。

  4. 幫助文件和文檔:將用戶手冊、幫助文檔等嵌入程序集,方便用戶訪問。

  5. 音頻和視頻文件:嵌入音頻和視頻文件,用于應用中的多媒體播放。

如何嵌入文件

  1. 在 Visual Studio 的解決方案資源管理器中,將文件添加到 WinForms 項目中。

  2. 選中文件,在“屬性”窗口中將“生成操作”設置為“嵌入的資源”。


示例

示例 1:顯示嵌入的圖像

假設我們將一個名為 logo.png 的圖像文件嵌入到 WinForms 應用程序中。

?

using System;using System.Drawing;using System.Reflection;using System.Windows.Forms;
public class MainForm : Form{    private PictureBox pictureBox;
   public MainForm()    {        pictureBox = new PictureBox        {            Size = new Size(200, 200),            Location = new Point(10, 10)        };        this.Controls.Add(pictureBox);
       LoadEmbeddedImage();    }
   private void LoadEmbeddedImage()    {        var assembly = Assembly.GetExecutingAssembly();        var resourceName = "YourNamespace.logo.png";
       using (var stream = assembly.GetManifestResourceStream(resourceName))        {            pictureBox.Image = Image.FromStream(stream);        }    }
   [STAThread]    static void Main()    {        Application.EnableVisualStyles();        Application.SetCompatibleTextRenderingDefault(false);        Application.Run(new MainForm());    }}

示例 2:讀取嵌入的文本配置文件

假設我們有一個名為 config.txt 的文本配置文件,我們將其嵌入到 WinForms 應用程序中。

using System;using System.IO;using System.Reflection;using System.Windows.Forms;
public class MainForm : Form{    public MainForm()    {        string configData = LoadEmbeddedTextFile("YourNamespace.config.txt");        MessageBox.Show(configData, "Config Data");    }
   private string LoadEmbeddedTextFile(string resourceName)    {        var assembly = Assembly.GetExecutingAssembly();
       using (var stream = assembly.GetManifestResourceStream(resourceName))        using (var reader = new StreamReader(stream))        {            return reader.ReadToEnd();        }    }
   [STAThread]    static void Main()    {        Application.EnableVisualStyles();        Application.SetCompatibleTextRenderingDefault(false);        Application.Run(new MainForm());    }}

注意:YourNamespace.config.txt 區分大小寫

示例 3:播放嵌入的音頻文件

假設我們將一個名為 sound.mp3 的音頻文件嵌入到 WinForms 應用程序中,并使用 System.Media.SoundPlayer 或第三方庫來播放它。

using System;using System.IO;using System.Media;using System.Reflection;using System.Windows.Forms;
public class MainForm : Form{    public MainForm()    {        Button playButton = new Button        {            Text = "Play Sound",            AutoSize = true,            Location = new Point(10, 10)        };        playButton.Click += (sender, e) => PlayEmbeddedSound("YourNamespace.sound.mp3");        this.Controls.Add(playButton);    }
   private void PlayEmbeddedSound(string resourceName)    {        var assembly = Assembly.GetExecutingAssembly();
       using (var stream = assembly.GetManifestResourceStream(resourceName))        {            var soundPlayer = new SoundPlayer(stream);            soundPlayer.Play();        }    }
   [STAThread]    static void Main()    {        Application.EnableVisualStyles();        Application.SetCompatibleTextRenderingDefault(false);        Application.Run(new MainForm());    }}

結論

將文件作為嵌入資源包含在 C# WinForms 應用程序的程序集中,提供了一種有效的方法來管理和訪問這些資源。這種方法簡化了應用程序的部署和分發過程,確保資源始終可用,并減少了文件丟失或被篡改的風險。上述示例展示了如何在 WinForms 應用中讀取和使用不同類型的嵌入資源,從而為開發者提供了實用的參考。


該文章在 2024/10/8 20:37:38 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved