none
BindingNavigator 中的 Item 所使用的圖片究竟藏在哪裡? RRS feed

  • 問題

  • 不知有沒有版友找過
    使用 BindingNavigator 控制項的時候,預設帶出好幾個按鈕,每個按鈕都有自己的 image,但是其中 AddNew 的那個 Item,Image 是一個金黃色的"+"號,到底他隱藏在什麼地防,有沒有辦法可以拿出來用
    因為如果不是使用 BindingNavigator 控制項,又需要有 AddNew 功能的 Item 時,希望圖形是一樣的

    ps.已找過 VS 2005 安裝目錄中所附的 VS2005ImageLibrary.zip 檔案,其中也不包含 AddNew 那個按鈕..

    2006年6月5日 上午 06:20

解答

  • 這些resource files都是存在%windir%\microsoft.net\framework\v2.0.50727\System.Windows.Forms.dll之中, 你可能需要寫些code去extract它的resources, 基本上你可以用ResourceReader class做到.
    2006年6月5日 上午 09:10
  • ResourceReader 類別可以讀入Stream的東東, 你可以宣告一個Assembly類別的instance先用把dll檔load進來之後,

    Assembly instance = Assembly.LoadFrom("dll檔名");

    String[] ResourceNames= instance.GetManifestResourceNames();

    //用GetManifestResourceNames()取出來;

    foreach (String Name in ResourceNames){ //接下來你可以用foreach 把所有的東東都叫出來

    ...

    Stream stm = instance.GetManifestResourceStream(Name );
    ResourceReader ResReader= new ResourceReader(stm);
    IDictionaryEnumerator IDE= ResReader.GetEnumerator();
    IDE.Reset();

    ...

    }

    2006年6月6日 上午 03:44

所有回覆

  • 這些resource files都是存在%windir%\microsoft.net\framework\v2.0.50727\System.Windows.Forms.dll之中, 你可能需要寫些code去extract它的resources, 基本上你可以用ResourceReader class做到.
    2006年6月5日 上午 09:10
  • 謝謝您的回答,但是我仍有疑問

    ResourceReader 類別必須讀入副檔名為 .resources 的檔案才可使用,因此檔案副檔名為 .dll,所以無法使用這個類別讀出資源
    另外,若是使用 ResourceManager 類別來讀取時,因為相關的 GetObject 方法必須明確知道該資源的名稱才可讀取,但是 ResourceManager 又不提供列舉方式逐一查看,所以還是不知道如何取出該資源

    2006年6月5日 上午 11:34
  • ResourceReader 類別可以讀入Stream的東東, 你可以宣告一個Assembly類別的instance先用把dll檔load進來之後,

    Assembly instance = Assembly.LoadFrom("dll檔名");

    String[] ResourceNames= instance.GetManifestResourceNames();

    //用GetManifestResourceNames()取出來;

    foreach (String Name in ResourceNames){ //接下來你可以用foreach 把所有的東東都叫出來

    ...

    Stream stm = instance.GetManifestResourceStream(Name );
    ResourceReader ResReader= new ResourceReader(stm);
    IDictionaryEnumerator IDE= ResReader.GetEnumerator();
    IDE.Reset();

    ...

    }

    2006年6月6日 上午 03:44
  • 太感謝了~

    已經抓到資源內容,並且另存成圖檔,這樣日後使用就不需要撰寫額外的程式了
    不過如果該資源是圖檔,則不能使用 ResourceReader 去讀取,反而要直接使用
    Image img = Image.FromStream(Stm);
    來抓取

    謝謝您的回覆,讓我學了不少

    2006年6月6日 上午 05:12