DOBON.NET DOBON.NETプログラミング掲示板過去ログ

枠の描画後

環境/言語:[環境:WindowsVista 言語:VB2008]
分類:[.NET]

初めての質問になります。

ピクチャボックスをクリックしたときに表示する枠にURL内の「.NET Framework 2.0以降:ビジュアルスタイルの輪郭の描画」のコードを使用させていただきました。

今度は別のピクチャボックスにフォーカスが移ったときに最初のピクチャボックスに表示されている枠を消してからフォーカス移動後のピクチャボックスに枠を表示したいのですが、描画した枠はどうすれば消すことが出来るのでしょうか?

よろしくお願いします。
2010/03/12(Fri) 18:16:20 編集(投稿者)

おのでらです。以下の方法はどうでしょうか。

1.PictureBox の Paint イベント処理でフォーカス状態による分岐処理を作る。

private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
    if (this.pictureBox1.Focused)
    {
        // 枠描画処理
    }
    else
    {
        // 何も描画しない
    }
}

2.描画イベントを発生させる。

各 PictureBox のクリックイベント処理内で PictureBox.Invalidate メソッドを呼ぶ。
これによって PictureBox が再描画されます。ただし、PictureBox 自体はクリックしてもフォーカスを持ちませんので、
クリックした直度に PictureBox.Focus メソッドを呼んでフォーカス状態を遷移してください。
解答ありがとうございます。
教えていただいた方法を元に試してみようと思います。

DOBON.NET | プログラミング道 | プログラミング掲示板