3

顧客のサービスが正しく機能しているかどうかを判断するために、顧客のアカウントでテストを実行するアプリケーションがあります。テストの実行プロセス中に、アプリケーションは各テストを読み取り、合格/不合格などを確認します。tabPage自体に緑色のチェックマーク/赤色のxを画像キーとして再生します...画像キーは次のように割り当てられます。それで

(tabPage as TabPage).ImageKey = "pass.png";

tabPageは実際には関数に渡されるオブジェクトであるため、別のメソッドから参照できます。

tabPageのtabControlが(動的に)作成されると、imageListがtabControl(画像がプルされる場所)に追加されます。

(tabControl[0] as TabControl).ImageList = imageList2;

したがって、メソッドが最終的にコードに到達してImageKeyを割り当てると、コードは実行されますが、空白の画像として表示されます。一部の人には効果があり、他の人には効果がないため、奇妙です。現在、私のATMでも機能せず、ソースコードを実行しても表示されません。誰かアイデアはありますか?これが問題を説明するのに役立つ画像です...必要に応じて従うべきより多くのコード。 画像の例

4

4 に答える 4

4

あなたの答えの必要性はおそらく長い間過ぎましたが、私は同じ問題を抱えていました、そしてここに私の解決策があります:

ImageKeyの設定は機能しませんが、ImageIndexを設定すると、アイコンが表示されます。アイコンをインデックスにマッピングする列挙子を作成しました。

private enum TabIconCodes : int
{
    Stopped = 1,
    Running = 2,
}
unitTab.ImageIndex = (int)TabIconCodes.Stopped;

これは理想的なソリューションではありませんが、機能します。

于 2011-06-22T18:34:40.400 に答える
3

やあ!同じ概念に関する別の解決策:

 tabp.ImageIndex = ImageListTabpages.Images.IndexOfKey("ImageKey")

それは私のために働きます。

于 2013-04-20T08:53:18.453 に答える
1

この質問はかなり前に行われたことを理解していますが、ここで提供される回答は回避策であるか、十分に明確ではありません。

This does NOT show the image:
var tabPage = new TabPage("page text");
tabPage.Name = "pageName";
tabPage.ImageKey = "myImageKey";
TabPages.Add(tabPage);  //tab is added AFTER setting the ImageKey
This works fine:
var tabPage = new TabPage("page text");
TabPages.Add(tabPage);  //tab is added BEFORE setting the ImageKey
tabPage.Name = "pageName";
tabPage.ImageKey = "myImageKey";

お役に立てれば!

于 2020-02-28T17:31:33.423 に答える
0

PageTabのImageKeyを設定する前に、PageTabのTabControlでImageListを設定し、PageTabをTabControlに追加する必要があります。

于 2015-11-12T15:35:56.410 に答える