C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: ラベルにマウスで描画するとずれる


(過去ログ 94 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■56181 / inTopicNo.1)  ラベルにマウスで描画するとずれる
  
□投稿者/ anny (4回)-(2011/01/03(Mon) 17:42:06)

分類:[C#] 

開発環境
Windows7 
VisualC# 2008

昨日もお世話になりました.
C#でラベルにドラッグしている間のマウスの軌跡を描画したいのですがずれてしまいます.
実際に描画したい場所からx方向が300,y方向が100ほど離れています.目分量ですが.
ピクチャボックスだとうまく行くのですが…
このようになる原因は何だと考えられるでしょうか?
ラベルを用いていてもマウスでクリックした場所はちゃんと取得できているようです.

よろしくお願いします.

以下用いたソース(緑のバイク ★ 初めてのC# のピクチャボックスをラベルに変えたもの)
Graphics grfx ;  // Graphics オブジェクト
int start = 0 ;  // 1 = 描画中
int startX ;     // Line X 起点
int startY ;     // Line Y 起点

private void Form1_Load(object sender, System.EventArgs e)
{
    // Graphics オブジェクトの取得
    label1.Image = new Bitmap(Screen.PrimaryScreen.WorkingArea.Width,
                                   Screen.PrimaryScreen.WorkingArea.Height) ;
    grfx = Graphics.FromImage(label1.Image) ;
}

private void label1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
    start = 1 ;
    startX = e.X ;
    startY = e.Y ;
}

private void label1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
    start = 0 ;
}

private void label1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
    if (start == 0) return ;
    grfx.DrawLine(p, startX, startY, e.X, e.Y) ;
    startX = e.X ;
    startY = e.Y ;
    label1.Refresh() ;
}

引用返信 編集キー/
■56182 / inTopicNo.2)  Re[1]: ラベルにマウスで描画するとずれる
□投稿者/ Azulean (667回)-(2011/01/03(Mon) 19:13:22)
Label は Label のサイズより大きなサイズの画像が設定されている場合、できるだけ中央に表示しようとします。
このため、Label の (0, 0) と画像の (0, 0) はずれてしまいます。

このコードを一番手っ取り早く現状に合わせるには、Bitmap のサイズを label1.Width, label1.Height で作ることです。
引用返信 編集キー/
■56183 / inTopicNo.3)  Re[2]: ラベルにマウスで描画するとずれる
□投稿者/ anny (5回)-(2011/01/03(Mon) 19:21:33)
Azulean様,昨日に引き続き回答ありがとうございます.

> このコードを一番手っ取り早く現状に合わせるには、Bitmap のサイズを label1.Width, label1.Height で作ることです。

label1.Widthとlabel1.Heightでサイズを指定すると思いどおりに動きました.
アドバイスありがとうございました.助かります.
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -