さまざまなイベントに応じてピクチャボックスの周りの色やスタイルをオンとオフにしたいと考えています。ピクチャボックス(winform)の境界線の色を変更するにはどうすればよいですか?
目的を達成するのに役立つ特性や機能はありますか?
さまざまなイベントに応じてピクチャボックスの周りの色やスタイルをオンとオフにしたいと考えています。ピクチャボックス(winform)の境界線の色を変更するにはどうすればよいですか?
目的を達成するのに役立つ特性や機能はありますか?
MouseEnterとMouseLeaveまたはMouseHoverイベントを使用してこれを行うことができ、OnPaintイベントを使用して実際の描画を行うことができます。上記のマウスイベントや気になるイベントでPictureBoxを無効にするだけです。
Winformsでは、コントロールの境界線の色を変更できません。ユーザーが選択したテーマによって固定されます。独自のコントロールを記述する必要がない、望みのものを得る最も簡単な方法は、パネルをピクチャボックス内に配置して、ピクチャボックスをわずかに小さくすることです。次に、パネルのBackColorを変更します。
デザイナーは、グリッドにコントロールを揃えようとするので、ちょっと試合をします。プロパティウィンドウの位置とサイズのプロパティをマウスではなく直接編集します。
しかし、私は画像ボックスの正方形/フレームが赤くなるようにしたい、それは可能ですか?あなたのコメントに関しては、私はすでにテーブルレイアウトの中にピクチャボックスを置き、セルに背景色を与えました。: – NewOrder
MouseDownイベントハンドラを実装し、色を設定します。 –
ここではsimple example(VB.NETでは、変換するのは簡単です)があります。 Passantの答えのような余分なPanelを使うことで心配する必要はありません。
これはいつも私がそのために使用するものとなっている:動的境界線の色を変更するには
private void pictureBox1_Paint_1(object sender, PaintEventArgs e)
{
ControlPaint.DrawBorder(e.Graphics, pictureBox1.ClientRectangle, Color.Red, ButtonBorderStyle.Solid);
}
、:
境界線の色を変更するには、お使いのPictureBoxコントロールのPaint
イベントハンドラからこれを呼び出しますたとえばマウスクリックイベントから、ピクチャボックスのTag
プロパティを使用して色を保存し、ピクチャボックスのClick
イベントを調整してそこから取得します。たとえば:
if (pictureBox1.Tag == null) { pictureBox1.Tag = Color.Red; } //Sets a default color
ControlPaint.DrawBorder(e.Graphics, pictureBox1.ClientRectangle, (Color)pictureBox1.Tag, ButtonBorderStyle.Solid);
のPictureBox Clickイベントは、その後、このような何かを行くだろう:あなたが先頭にusing System.Drawing;
をする必要がありますし、最後にpictureBox1.Refresh()
を呼び出すことを忘れないでください
private void pictureBox1_Click(object sender, EventArgs e)
{
if ((Color)pictureBox1.Tag == Color.Red) { pictureBox1.Tag = Color.Blue; }
else {pictureBox1.Tag = Color.Red; }
pictureBox1.Refresh();
}
。楽しい!
私はマウスのイベントを使用する必要があります – NewOrder