これは、簡単です。
StatusbarクラスのIconプロパティに表示したいアイコンを指定します。テキストと同時に表示すると、テキストの左側にアイコンが表示されます。
さて、アイコンはIconクラスから作成します。
Iconクラスの継承関係は次のようになっています。
System.Object System.MarshalByRefObject System.Drawing.IconIconクラスのコンストラクタは、オーバーロードされた9つのバージョンがあります。 ここでは、アイコンをリソースとして埋め込むので、次のバージョンを知っているだけで充分です。
public Icon ( Type type, string resource )typeは、リソースを検索するアセンブリのTypeです。
resourceは、リソース名です。
さて、アイコンをリソースとして埋め込むのは、イメージの時と同じです。
1.ソリューション・エクスプローラでプロジェクト名を右クリック 2.「追加」「新しい項目」で、追加したいアイコンを選択 3.追加したアイコンを右クリックして、「プロパティ」を選択 4.ビルドアクションを「埋め込まれたリソース」にします。たったこれだけです。
リソース名は、「名前空間名.アイコンのファイル名」となります。デフォルトでは名前空間名はプロジェクト名と同じになります。
これで、アイコンオブジェクトを作成できるようになりました。次のような感じで使います。
Icon icon = new Icon(GetType(), "status04.icon1.ico");これは、status04名前空間のicon1.icoアイコンのオブジェクトを生成しています。
Iconクラスの便利なメソッドにToBitmapメソッドがあります。その名の通り、アイコンをBitmapに変換してくれます。
public Bitmap ToBitmap ()では、簡単なサンプルを見てみましょう。
// status04.cs using System; using System.Drawing; using System.Windows.Forms; class status04 : Form { StatusBar sb; StatusBarPanel sbp0, sbp1, sbp2; public static void Main() { status04 fm = new status04(); Application.Run(fm); } public status04() { Icon icon = new Icon(GetType(), "status04.icon1.ico"); Text = "猫でもわかるC#プログラミング"; BackColor = SystemColors.Window; Icon = icon; BackgroundImage = icon.ToBitmap(); sb = new StatusBar(); sb.Parent = this; sb.ShowPanels = true; sbp0 = new StatusBarPanel(); sbp1 = new StatusBarPanel(); sbp2 = new StatusBarPanel(); sbp0.AutoSize = StatusBarPanelAutoSize.Contents; sbp0.Alignment = HorizontalAlignment.Center; sbp1.AutoSize = StatusBarPanelAutoSize.Spring; sbp1.Alignment = HorizontalAlignment.Center; sbp2.AutoSize = StatusBarPanelAutoSize.Contents; sbp2.Alignment = HorizontalAlignment.Center; sbp0.Icon = icon; sbp1.Icon = icon; sbp2.Icon = icon; sbp1.Text = Text; sb.Panels.Add(sbp0); sb.Panels.Add(sbp1); sb.Panels.Add(sbp2); } }ほとんどすべてのことは、status04クラスのコンストラクタで行ってます。
sbp1には、アイコンとテキストを指定してる点に注意してください。
では、実行結果を見てみましょう。
どこも、猫だらけですね・・・
メイン・フォームのアイコンも変更されている点に注意してください。
Update 10/Feb/2007 By Y.Kumei