選択時にラベルの枠に点線表示
- 題名: 選択時にラベルの枠に点線表示
- 著者: こたろう
- 日時: 2012/02/21 13:57:32
- ID: 29908
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: 選択時にラベルの枠に点線表示
- 著者: 魔界の仮面弁士
- 日時: 2012/02/21 14:53:45
- ID: 29909
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: 選択時にラベルの枠に点線表示
- 著者: こたろう
- 日時: 2012/02/21 15:17:21
- ID: 29911
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: 選択時にラベルの枠に点線表示
- 著者: ズッカ
- 日時: 2012/02/21 15:49:10
- ID: 29912
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: 選択時にラベルの枠に点線表示
- 著者: 魔界の仮面弁士
- 日時: 2012/02/21 15:57:10
- ID: 29913
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: 選択時にラベルの枠に点線表示
- 著者: こたろう
- 日時: 2012/02/21 16:22:34
- ID: 29915
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: 選択時にラベルの枠に点線表示
- 著者: こたろう
- 日時: 2012/02/21 16:25:57
- ID: 29916
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
早速質問に入らせていただきます。
ラベルをドラッグアンドドロップで
配置場所を変えるというプログラムを作っています。
ラベルの配置を変えることは出来たのですが、
ドラッグしているラベル(選択しているラベル)が
わかるようにしたいということで
ラベルの枠に点線を表示することにしました。
他のラベルが選択されるまで点線は表示していたいです。
ラベルの枠に点線を表示することは出来ました。
下記がそのコードです。
カスタムコントロール(名:CustomLabel)で作成しました。
質問したいのは、ラベルを選択したときのみ
点線を表示したいのですが、
下記コードを実行すると最初から(Form表示時点で)
点線が表示されてしまいます。
ラベルを選択(MouseDownイベントなど)しているときに
点線を表示するというのはどのようにすればいいのでしょうか?
CustomLabel内でMouseDownイベントを起こし
そのイベント内でOnPaint()を呼びたいのですが
可能でしょうか?
また、OnPaint()が呼べない場合、どのように定義すればいいでしょうか?
よろしくお願いします。
using System;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
namespace CustomLabel
{
public partial class CustomLabel: Label
{
public CustomLabel()
{
InitializeComponent();
}
/// <summary>
/// 点線表示
/// </summary>
/// <param name="pe"></param>
protected override void OnPaint(System.Windows.Forms.PaintEventArgs pe)
{
base.OnPaint(pe);
using (System.Drawing.Pen hPen = new System.Drawing.Pen(System.Drawing.Color.Black, 1))
{
hPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot;
pe.Graphics.DrawRectangle(hPen, 0, 0, this.Width - 1, this.Height - 1);
}
}
/// <summary>
/// ラベル選択
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void FreeLabel_MouseDown(object sender, MouseEventArgs e)
{
※ここでOnPaint()を呼びたい
}
}
}