當前位置:編程學習大全網 - 編程語言 - c#中 怎麽件類文件 在winform中用的,我想把數據庫的壹些頻繁操作的比如連接等操作添加到類文件裏。

c#中 怎麽件類文件 在winform中用的,我想把數據庫的壹些頻繁操作的比如連接等操作添加到類文件裏。

資源文件顧名思義就是存放資源的文件。資源文件在程序設計中有著自身獨特的優勢,他獨立於源程序,這樣資源文件就可以被多個程序使用。同時在程序設計的時候,有時出於安全或者其他方面因素的考慮,把重要東西存放在資源文件中,也可以達到保密、安全的效果。那麽Visual C#所使用的資源文件中到底存放哪些東西呢?在用Visual C#創建資源文件大致可以存放三種類型的數據資源,分別是字節數組、各種對象和字符串。本文將結合壹個程序例子來具體說明用Visual C#是如何創建資源文件的。

壹.用Visual C#在創建資源文件用到的壹些概念和理論:

在.Net FrameWork SDK中的壹個名字叫System.Resources名稱空間,在此名稱空間中為應用程序提供了許多創建、存儲和使用資源文件的類和接口。其中有壹個類叫ResourceWriter,Visual C#就是通過調用這個類來實現創建、存儲資源文件的。

二.Visual C#如何創建資源文件:

首先要繼承壹個ResourceWriter類,然後調用ResourceWriter類的壹個方法Generate ( ),就可以產生壹個資源文件了。具體語句如下:

ResourceWriter rw = new ResourceWriter ( "My.resources" ) ;

rw.Generate ( ) ;

此時在磁盤的中就會產生壹個名稱為"My.resources"的資源文件,但此時的資源文件沒有任何內容,下面我們就來看看如何往資源文件中添加資源。

三.在資源文件中添加資源:

在ResourceWriter類中提供了壹個AddResource ( )方法,這個方法的作用就是往資源文件中添加資源的。在Visual C#中對不同的資源有著不同的加入方式。

(1).加入字節數組,語法格式為:

public void AddResource ( string , byte [ ] ) ;

註釋:其中string是在使用資源文件的時候,此字節數組在程序中的的唯壹標識符

(2).加入對象,語法格式為:

public void AddResource ( string , object );

註釋:其中string是在使用資源文件的時候,此對象在程序中的唯壹標識符

在本文程序中,我們利用這種調用方式來加入圖標和圖象,具體如下:

Icon ico = new Icon ( "Demo.ico" ) ;

Image canceloff = Image.FromFile ("cancel-off.png") ;

Image cancelon = Image.FromFile ( "cancel-on.png" ) ;

Image cancelover = Image.FromFile ( "cancel-over.png" ) ;

Image okdown = Image.FromFile ( "ok-down.png" ) ;

Image okoff = Image.FromFile ( "ok-off.png" ) ;

Image okon = Image.FromFile ( "ok-on.png" ) ;

rw.AddResource ( "demo.ico" , ico ) ;//在資源文件中加入圖標

//以下是在資源文件中加入圖象

rw.AddResource ( "cancel-off.png" , canceloff ) ;

rw.AddResource ( "cancel-on.png" , cancelon ) ;

rw.AddResource ( "cancel-over.png" , cancelover ) ;

rw.AddResource ( "ok-down.png" , okdown ) ;

rw.AddResource ( "ok-off.png" , okoff ) ;

rw.AddResource ( "ok-on.png" , okon ) ;

(3).加入字符串,具體語法如下:

public void AddResource ( string1 , string2) ;

註釋:其中string1是在使用資源文件的時候,此字符串在程序中的唯壹標識符在本文的程序中,是如此使用的:

rw.AddResource ( "MyStr" , "從資源文件中讀取字符串!" );

至此我們已經創建了壹個資源文件,並且在資源文件中加入了若幹個資源,當然在這之後,還應該註意,保存此資源文件,並關閉資源文件,具體如下:

rw.Close ( ) ;

四.創建資源文件的源程序代碼:

通過上面的論述,我們不難理解下面這些代碼。下列程序代碼的作用就是,創建壹個名稱為"My.resources"資源文件,並且在此資源文件中加入壹個圖標資源,若幹個圖象資源,和壹個字符串資源。具體代碼如下:

CreatResources.cs:

using System ;

using System.Drawing ;

using System.Resources ;

class CreatResource

{

public static void Main ( )

{

ResourceWriter rw = new ResourceWriter ( "My.resources" ) ;

Icon ico = new Icon ( "Demo.ico" ) ;

Image canceloff = Image.FromFile ("cancel-off.png") ;

Image cancelon = Image.FromFile ( "cancel-on.png" ) ;

Image cancelover = Image.FromFile ( "cancel-over.png" ) ;

Image okdown = Image.FromFile ( "ok-down.png" ) ;

Image okoff = Image.FromFile ( "ok-off.png" ) ;

Image okon = Image.FromFile ( "ok-on.png" ) ;

rw.AddResource ( "demo.ico" , ico ) ;

rw.AddResource ( "cancel-off.png" , canceloff ) ;

rw.AddResource ( "cancel-on.png" , cancelon ) ;

rw.AddResource ( "cancel-over.png" , cancelover ) ;

rw.AddResource ( "ok-down.png" , okdown ) ;

rw.AddResource ( "ok-off.png" , okoff ) ;

rw.AddResource ( "ok-on.png" , okon ) ;

rw.AddResource ( "MyStr" , "從資源文件中讀取字符串!" ) ;

rw.Generate ( ) ;

rw.Close ( ) ;

}

}

最好還要提醒壹下,在成功編譯成執行文件後,在執行此文件的時候,必須保證在此執行文件的相同目錄,存在上面代碼中提到名稱的圖標和圖象,否則在創建資源文件的時候是會出錯的。

五.總結:

可見用Visual C#創建資源文件並不是壹個復雜的過程,在下壹篇文章中,我們將介紹如何在Visual C#使用資源文件中資源。這才是Visual C#資源文件編程的重點和難點。當然文中所使用的資源文件就是以本文中創建的資源文件。

使用資源文件

在《Visual C#資源文件編程--創建資源文件》中已經介紹了如何用Visual C#創建資源文件。本文將接著上篇文章的話題來探討資源文件另外壹個問題,在Visual C#如何使用資源文件。在上壹篇文章中,我們已經成功的創建了壹個名稱為"My.resources"的資源文件。這個資源文件中包含有壹個圖標資源,在文件中的名稱為"demo.ico",若幹個圖片資源和壹個字符串資源,在文件中的名稱為"MyStr"。我們將以上壹篇文章創建的此資源文件為對象,結合壹個具體的程序例子來看壹下用Visual C#如何使用資源文件。

壹.本文程序設計和運行的軟件環境:

(1).微軟公司視窗2000服務器版

(2)..Net FrameWork SDK Beta 2

二.程序設計中的壹些概念和理論:

程序設計時涉及到的概念和理論主要是二種變量的相互轉換。這就是二種變量就是所謂的實值類型變量(Value Type Variable)和參考類型變量(Reference Type Variable)。而二者之間的相互轉換,在Visual C#中被稱為裝箱(Boxing)和出箱(Unboxing)。所謂裝箱就是把實值類型變量轉換成參考類型變量的過程,反之就是出箱。那麽什麽類型的變量是參考類型的變量,什麽類型的變量又是實值類型變量呢?這二者之間有什麽區別麽?在Visual C#中的參考類型就是泛指這些類型,如:Object、Class、Interface、Delegate、String、Array等。這些類型定義的變量就是參考類型變量。而實值類型就是平常的平常使用的整型、布爾型、枚舉型等,由這些類型定義的變量就是實值類型變量。他們之間的最大區別是參考類型變量是指向實體對象的指針,而實值類型變量就是實在的實體對象。由於裝箱和出箱是壹個概念性很強的操作過程,詳細介紹需要很大的篇幅。而這超出了本文探討的主要範疇。所以本文只介紹和程序相關的操作即出箱。具體的操作步驟,將在下壹屆結合程序來介紹。

三.程序設計的思路已經重要步驟的解決方法:

(1).如何在程序編譯的時候中嵌入資源。資源文件和程序是二個獨立的文件,要把資源文件嵌入到最後生成的程序中,需要在編譯的時候加上"/resource"命令,這個命令可以簡寫為"/res"。在本文中程序的名稱為"use.cs",資源文件的名稱為"My.resources",則把資源嵌入程序的編譯命令如下:

Csc.exe /res:My.resources use.cs

(2).如何在程序管理資源文件中的資源:

在.Net FrameWork SDK這提供了壹個關於資源文件創建和使用的名稱空間--System.Resources。在這個名稱空間中有壹個Class為ResourceManager,這個Class的主要作用就是管理並使用資源文件。Visual C#是通過這個類來管理並使用嵌入程序中的資源文件中的資源。下列代碼就是定義壹個ResourceManager類來管理嵌入程序資源文件中的資源:

ResourceManager rm = new ResourceManager ( "Images" , Assembly.GetExecutingAssembly ( ) ) ;

(3).如何在程序中使用資源文件中的資源:

在上壹篇文章中,我們已經了解到在創建資源文件的時候,使用了AddResource ( )方法來加入資源,他的語法中的第壹個參數是用戶可以定義的字符串,這個字符串就是資源在資源文件的唯壹標識,在程序設計中,就是通過這個唯壹標識符來使用某個資源的。那麽如何在程序中通過這個標識符來得到所需資源?這就要使用到ResourceManager類中的GetObject()和GetString()方法。這二個方法作用是獲得指定的資源。下面是這二個方法的語法:

object GetSting(String)

object GetObject(String)

其中的"String"就是資源在資源文件中的那個唯壹標識符。細心的讀者可能已經註意到,這二個方法的返回值都是壹個Object類型的變量,也就是壹個參考類型的變量,而在程序中的字符串或者圖象等,是壹個實值類型變量。這就需要進行轉換,而這種轉換就是上面所說的裝箱和出箱。下列代碼是從資源文件中提取字符串、圖象和圖標資源:

提取字符串資源:

String s = ( ( String ) rm.GetString ( "MyStr" ) ) ;

提取圖標資源:

Icon icoDemo = ( ( Icon ) rm.GetObject ( "demo.ico" ) ) ;

提取圖象資源:

Image a = ( ( Image ) ( rm.GetObject ( "ok-off.png" ) ) ) ;

四.結合壹個程序例子來看壹下,資源文件的具體使用方法:

下面的程序例子所使用的資源文件是上壹篇文章中創建的資源文件"My.resources",程序中定義了三個Lable組件,其中的二個的作用是顯示資源文件中圖象資源,另外壹個的作用是顯示資源文件中字符串資源,程序的圖標是取自資源文件中的圖標資源。下面是程序的源代碼:

using System ;

using System.Drawing ;

using System.Collections ;

using System.ComponentModel ;

using System.Windows.Forms ;

using System.Data ;

using System.Resources ;

using System.Reflection ;

public class Form1 : Form

{

private Label lblOK ;

private Label lblCancel ;

private System.ComponentModel.Container components = null ;

private Label lblResource ;

public Form1 ( )

{

//初始化窗體中的組件

InitializeComponent ( ) ;

}

//清除程序中使用過的資源

protected override void Dispose ( bool disposing )

{

if ( disposing )

{

if ( components != null )

{

components.Dispose ( ) ;

}

}

base.Dispose ( disposing ) ;

}

private void InitializeComponent ( )

{

ResourceManager rm = new ResourceManager ( "Images" , Assembly.GetExecutingAssembly ( ) ) ;

this.lblOK = new Label ( ) ;

this.lblCancel = new Label ( ) ;

this.lblResource = new Label ( ) ;

this.SuspendLayout ( ) ;

this.lblOK.BackColor = System.Drawing.Color.White ;

//使用資源文件中的圖象資源

this.lblOK.Image = ( ( Image ) ( rm.GetObject ( "ok-off.png" ) ) ) ;

this.lblOK.Location = new System.Drawing.Point ( 24 , 40 ) ;

this.lblOK.Name = "lblOK" ;

this.lblOK.Size = new System.Drawing.Size ( 75 , 23 ) ;

this.lblOK.TabIndex = 0 ;

this.lblOK.Click += new System.EventHandler ( this.lblOK_Click ) ;

this.lblOK.MouseEnter += new System.EventHandler ( this.lblOK_MouseEnter ) ;

this.lblOK.MouseLeave += new System.EventHandler ( this.lblOK_MouseLeave ) ;

//出箱

//使用資源文件中的圖象資源

this.lblCancel.Image = ( ( Image ) ( rm.GetObject ( "cancel-off.png" ) ) ) ;

this.lblCancel.Location = new System.Drawing.Point ( 152 , 40 ) ;

this.lblCancel.Name = "lblCancel" ;

this.lblCancel.Size = new System.Drawing.Size ( 75 , 23 ) ;

this.lblCancel.TabIndex = 1 ;

this.lblCancel.Click += new System.EventHandler ( this.lblCancel_Click ) ;

this.lblCancel.MouseEnter += new System.EventHandler ( this.lblCancel_MouseEnter ) ;

this.lblCancel.MouseLeave += new System.EventHandler ( this.lblCancel_MouseLeave ) ;

this.lblResource.Location = new System.Drawing.Point ( 88 , 8 ) ;

this.lblResource.Name = "lblResource" ;

this.lblResource.TabIndex = 2 ;

//出箱

//使用資源文件中的字符串資源

this.lblResource.Text = ( ( String ) rm.GetString ( "MyStr" ) ) ;

this.AutoScaleBaseSize = new System.Drawing.Size ( 5 , 13 ) ;

this.ClientSize = new System.Drawing.Size ( 240 , 101 ) ;

this.Controls.Add ( lblResource ) ;

this.Controls.Add ( lblCancel ) ;

this.Controls.Add ( lblOK ) ;

//出箱

//使用資源文件中的圖標資源

Icon icoDemo = ( ( Icon ) rm.GetObject ( "demo.ico" ) ) ;

this.Icon = icoDemo ;

this.Name = "Form1" ;

this.Text = "Visual C#中使用資源文件!" ;

this.ResumeLayout ( false ) ;

}

static void Main ( )

{

Application.Run ( new Form1 ( ) ) ;

}

private void lblOK_MouseEnter ( object sender , System.EventArgs e )

{

ResourceManager rm = new ResourceManager ( "Images" , Assembly.GetExecutingAssembly ( ) ) ;

this.lblOK.Image = ( ( Image ) ( rm.GetObject ( "ok-on.png" ) ) ) ;

}

private void lblOK_MouseLeave ( object sender , System.EventArgs e )

{

ResourceManager rm = new ResourceManager ( "Images" , Assembly.GetExecutingAssembly ( ) ) ;

this.lblOK.Image = ( ( Image ) ( rm.GetObject ( "ok-off.png" ) ) ) ;

}

private void lblOK_Click ( object sender, System.EventArgs e )

{

ResourceManager rm = new ResourceManager ( "Images" , Assembly.GetExecutingAssembly ( ) ) ;

this.lblOK.Image = ( ( Image ) ( rm.GetObject ( "ok-down.png" ) ) ) ;

}

private void lblCancel_MouseEnter ( object sender , System.EventArgs e )

{

ResourceManager rm = new ResourceManager ( "Images" , Assembly.GetExecutingAssembly ( ) ) ;

this.lblCancel.Image = ( ( Image ) ( rm.GetObject ( "cancel-onr.png" ) ) ) ;

}

private void lblCancel_MouseLeave ( object sender , System.EventArgs e )

{

ResourceManager rm = new ResourceManager ( "Images" , Assembly.GetExecutingAssembly ( ) ) ;

this.lblCancel.Image = ( ( Image ) ( rm.GetObject ( "cancel-off.png" ) ) ) ;

}

private void lblCancel_Click(object sender, System.EventArgs e)

{

ResourceManager rm = new ResourceManager ( "Images" , Assembly.GetExecutingAssembly ( ) ) ;

this.lblCancel.Image = ( ( Image ) ( rm.GetObject ( "cancel-over.png" ) ) ) ;

}

}

五.總結:

至此我們已經完成了在Visual C#資源文件方面編程的全部內容,其中的主要內容就是創建資源文件和使用資源文件二大方面,我想通過這二篇文章的介紹,妳對資源文件應該有了壹個比較全面的認識了吧!

祝妳好運..

  • 上一篇:影響大學生創業成功的因素有哪壹些
  • 下一篇:電腦有哪些斷口?主要是做什麽用的.
  • copyright 2024編程學習大全網