tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルマウスでラベルに線を引きたい
記事No10757
投稿日: 2012/03/30(Fri) 17:26
投稿者お願いします
VB.NETでラベル上にマウスでドラッグしてラベル上を移動させると移動箇所の色を変更する処理をやりたいんですが、どなたかお知恵を拝借願います。

[ツリー表示へ]
タイトルRe: マウスでラベルに線を引きたい
記事No10760
投稿日: 2012/03/31(Sat) 11:47
投稿者VBレスキュー(花ちゃん)
タイトル : マウスでラベルに線を引きたい

> VB.NETで
VB.NET とは、普通 VB6.0 と それ以後のVisual Basic とを区別する場合に使用は
しますが、Visual Basic のバージョンを表しているのなら、正式な製品名かバージョンを
書くようにして下さい。(ここは、.NET 用の掲示板なので特に区別して頂く必要は
ありません)
 http://www.hanatyan.sakura.ne.jp/patio/read.cgi?mode=view2&f=243&no=8

>ラベル上に
ラベル上で とは違うのですか?

>マウスでドラッグして
何をドラッグされているのでしょうか?

>ラベル上を移動させると
同一ラベル(ドラッグを開始した)上ですか?

>移動箇所の色を変更する処理をやりたいんですが、
この[移動箇所]とは、どこを指しているのでしょうか?
  
>どなたかお知恵を拝借願います。
何に対してでしょうか?(コード?方法・手段、どこまでできて、どこが解らない)

タイトルと質問内容とは、意味合いが違うような?

もしかして、マウスのドラッグでラベル上に線を描画したいとか。
それなら、何の為に? どうしてラベルでないといけないの

ハンドルネームは、それに相応しいものにして下さい。
 http://www.hanatyan.sakura.ne.jp/hazimeni.htm#keijiban

一応、マウスのドラッグでラベル上に線(軌跡)を描画したいと仮定して

Windows 7 / VB2010 で動作確認

見当違いのようなので削除

[ツリー表示へ]
タイトルRe^2: マウスでラベルに線を引きたい
記事No10761
投稿日: 2012/04/02(Mon) 11:51
投稿者お願いします
すみません、あんまりなれてなくて
バージョンはVB2005です。
やりたい事としては横長のラベルを作成しラベル上でマウスをドラッグしたままラベル上を移動させるとドラック開始時点から終了時点(移動中も)までのラベルの背景に色をつけたいという事です。

イメージとしてはラベルの横軸を時間(24hr)としてマウスで指定時間を塗りつぶしたいという事です。
これでわかりますでしょうか?

[ツリー表示へ]
タイトルRe^3: マウスでラベルに線を引きたい
記事No10762
投稿日: 2012/04/02(Mon) 12:23
投稿者VBレスキュー(花ちゃん)
> すみません、あんまりなれてなくて
> バージョンはVB2005です。
> やりたい事としては横長のラベルを作成しラベル上でマウスをドラッグしたままラベル上を移動させるとドラック開始時点から終了時点(移動中も)までのラベルの背景に色をつけたいという事です。
>
> イメージとしてはラベルの横軸を時間(24hr)としてマウスで指定時間を塗りつぶしたいという事です。
> これでわかりますでしょうか?

余計解りません、日本語と英語で話をしているようで、ラベル ってひょっとして
Chart のラベルの事ですか?
先の回答で、貴方の質問の要件を満たしているコードを態々作って投稿したのに何の応答も
無いし、私には、何をしたいのか? どこが解らないのかさっぱりです。
申し訳ありませんが、他の人の回答を待って下さい。

[ツリー表示へ]
タイトルRe^4: マウスでラベルに線を引きたい
記事No10763
投稿日: 2012/04/02(Mon) 12:49
投稿者お願いします
申し訳ありません。
遅ればせながらサンプルコードありがとうございました。
説明が下手でうまく伝えられなくて申し訳ありません。

ラベルにもいろいろ種類があるんですね知りませんでした。
VBのツールボックスにある普通のLabelのことです。

いやな思いをさせてしまい申し訳ありませんでした。

[ツリー表示へ]
タイトルRe^5: マウスでラベルに線を引きたい
記事No10764
投稿日: 2012/04/02(Mon) 15:44
投稿者shu
これでどうですか?
合ってますか?

label1:Autosize=false,Text = ""


    Private Label1Down As Boolean = False
    Private x1 As Integer = -1
    Private x2 As Integer = -1
    Private drawcol As Color

    Private Sub Label1_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Label1.MouseDown
        Label1Down = True
        x1 = e.X
        Label1.Refresh()
    End Sub

    Private Sub Label1_MouseMove(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Label1.MouseMove
        If Label1Down Then
            x2 = e.X
            drawcol = Color.Cyan
            Label1.Refresh()
        End If
    End Sub

    Private Sub Label1_MouseUp(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Label1.MouseUp
        Label1Down = False
        drawcol = Color.Blue
        Label1.Refresh()
    End Sub

    Private Sub Label1_Paint(sender As Object, e As System.Windows.Forms.PaintEventArgs) Handles Label1.Paint
        Dim g = e.Graphics
        g.Clear(Label1.BackColor)
        If x1 >= 0 AndAlso x2 >= 0 Then
            Using brs As New SolidBrush(drawcol)
                Dim crec = Label1.ClientRectangle
                Dim dx1 = Math.Min(x1, x2)
                Dim dx2 = (x1 + x2) - dx1
                g.FillRectangle(brs, dx1, crec.Top, dx2 - dx1, crec.Height)
            End Using
        End If
    End Sub

[ツリー表示へ]
タイトルRe^6: マウスでラベルに線を引きたい
記事No10765
投稿日: 2012/04/02(Mon) 16:53
投稿者お願いします
shuさん

ありがとうございます。

完璧です。

出来ないのかなと諦めかけてましたが

本当に助かりました。

[ツリー表示へ]
タイトルRe^7: マウスでラベルに線を引きたい
記事No10766
投稿日: 2012/04/02(Mon) 17:58
投稿者お願いします
> shuさん
>
> ありがとうございます。
>
> 完璧です。
>
> 出来ないのかなと諦めかけてましたが
>
> 本当に助かりました。
shuさん

教えて頂いた方法で試してイメージ的にはバッチリですが
プラスαの操作としてラベルに複数の色を指定したいのですが
いろいろ試してみましたがどうしてもわかりません。
同一ラベル上に色をわけて指定する事も可能でしょうか?

[ツリー表示へ]
タイトルRe^8: マウスでラベルに線を引きたい
記事No10767
投稿日: 2012/04/03(Tue) 08:23
投稿者shu
2点の座標と色を1組にしたクラスでも作ってそのListに各情報を
保持するようにすれば出来ると思います。

Public SampleClass
  Public Property X1 as Integer
    〜

  Public Proeprty X2 as Integer
      〜

  Public Property FillCol as Color
      〜

End Class


FillColors as List(Of SampleClass)


FillColors にAdd各描画情報をAddして
Paintイベントでループして描画するとよいと思います。
  

  

[ツリー表示へ]
タイトルRe^9: マウスでラベルに線を引きたい
記事No10768
投稿日: 2012/04/03(Tue) 09:20
投稿者お願いします
shuさん

ありがとうございます。
教えて頂いた方法でやってみます。

[ツリー表示へ]