DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

画像、文字列を無効状態で表示する

注意:画像の表示方法が分からないという方は、まず「コントロールやフォームに画像を表示する」をご覧ください。

画像を無効状態で表示する

ツールバーなどで使用できないボタンの画像は灰色で表示されますが、このように無効状態で画像を表示するには、ControlPaint.DrawImageDisabledメソッドを使います。しかし下の結果を見ていただければ分かるとおり、Windowsでよく見られる立体的な無効状態の画像とは違います。立体的な無効状態の画像を表示させる方法は、「.NETプログラミング研究」の第5号で紹介しています。

VB.NET
コードを隠すコードを選択
'Imports System.Drawing

'描画先とするImageオブジェクトを作成する
Dim canvas As New Bitmap(PictureBox1.Width, PictureBox1.Height)
'ImageオブジェクトのGraphicsオブジェクトを作成する
Dim g As Graphics = Graphics.FromImage(canvas)

'画像を取得
Dim img As Bitmap = SystemIcons.WinLogo.ToBitmap()

'画像を普通に表示
g.DrawImage(img, 0, 0)

'画像を無効状態で表示
ControlPaint.DrawImageDisabled(g, img, img.Width + 10, 0, _
    PictureBox1.BackColor)

'リソースを解放する
g.Dispose()

'PictureBox1に表示する
PictureBox1.Image = canvas
C#
コードを隠すコードを選択
//using System.Drawing;

//描画先とするImageオブジェクトを作成する
Bitmap canvas = new Bitmap(PictureBox1.Width, PictureBox1.Height);
//ImageオブジェクトのGraphicsオブジェクトを作成する
Graphics g = Graphics.FromImage(canvas);

//画像を取得
Bitmap img = SystemIcons.WinLogo.ToBitmap();

//画像を普通に表示
g.DrawImage(img, 0, 0);

//画像を無効状態で表示
ControlPaint.DrawImageDisabled(g, img, img.Width + 10, 0, PictureBox1.BackColor);

//リソースを解放する
g.Dispose();

//PictureBox1に表示する
PictureBox1.Image = canvas;

文字列を無効状態で表示する

また、文字列を無効状態で描画するには、ControlPaint.DrawStringDisabledメソッドを使います。しかしこれもまた結果はWindowsでよく見られるものとは若干色が違います。こちらも詳しくは「.NETプログラミング研究」の第5号をご覧ください。

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • このサイトで紹介されているコードの多くは、例外処理が省略されています。例外処理については、こちらをご覧ください。
  • コードの先頭に記述されている「Imports ??? がソースファイルの一番上に書かれているものとする」(C#では、「using ???; がソースファイルの一番上に書かれているものとする」)の意味が分からないという方は、こちらをご覧ください。
  • .NET Tipsをご利用いただく際は、注意事項をお守りください。