tagCANDY CGI VBレスキュー(花ちゃん) - VBレスキュー(花ちゃん)の投稿サンプル用掲示板 - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
VBレスキュー(花ちゃん)の投稿サンプル用掲示板
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
ピクチャーボックスのサイズをマウスのドラッグで変更する(VB.NET) ( No.0 )  [親スレッドへ]
日時: 2009/12/26 21:08
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[コントロール共通][マウス][]                                        *
* キーワード:PictureBox,移動,サイズ変更,幅を変更,                                *
***********************************************************************************
記事No : 7164
投稿日 : 2008/03/08(Sat) 08:14
元質問 : ゆうき  

マウスのドラッグで、ペイントのようにPictureBoxのサイズを変更したいのですが、
http://hanatyan.sakura.ne.jp/samplepic/vb8_239.htm
を参考に、幅を変更するのは実装できました。

しかし、たてを別のラベルで同じようにやろうとすると、ラベルをドラッグしたときに、
PictureBoxがどこかへ行ってしまいます

-----------------------------------------------------------------------------------
回答者 : 花ちゃん
-----------------------------------------------------------------------------------
ペイントの白いキャンパスの部分のようにサイズ変更ができます。
サンプルですので2ヶ所しか設定しておりませんので、PictureBox 上にマウスが
ある場合だけ、Label を表示するとか工夫してください。
又、http://hanatyan.sakura.ne.jp/samplepic/vb6_151.htm のような方法もあります。

Public Class Form1
Private Posx1 As Integer
Private Posy2 As Integer

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
                                       System.EventArgs) Handles MyBase.Load
   With Label1
      .Size = New Size(4, 4)
      .Location = New Point(148, 60)
      .AutoSize = False
      .Text = ""
      .BackColor = Color.Black
      .Cursor = Cursors.SizeWE
   End With
   With Label2
      .Size = New Size(4, 4)
      .Location = New Point(98, 108)
      .AutoSize = False
      .Text = ""
      .BackColor = Color.Black
      .Cursor = Cursors.SizeNS
   End With

   With PictureBox1
      .Size = New Size(100, 100)
      .Location = New Point(50, 10)
      .BackColor = Color.White
   End With
End Sub

Private Sub Label1_MouseDown(ByVal sender As Object, ByVal e As _
                     System.Windows.Forms.MouseEventArgs) Handles Label1.MouseDown
   If e.Button = System.Windows.Forms.MouseButtons.Left Then
      Posx1 = e.X
   End If
End Sub

Private Sub Label1_MouseMove(ByVal sender As Object, ByVal e As _
                        System.Windows.Forms.MouseEventArgs) Handles Label1.MouseMove
   If e.Button = System.Windows.Forms.MouseButtons.Left Then
      Dim X1 As Integer = Posx1 - e.X
      Label1.Left -= X1
      Label2.Left = (PictureBox1.Width \ 2) + PictureBox1.Left
      PictureBox1.Width -= X1
      Me.Refresh()
   End If
End Sub

Private Sub Label2_MouseDown(ByVal sender As Object, ByVal e As _
                     System.Windows.Forms.MouseEventArgs) Handles Label2.MouseDown
   If e.Button = System.Windows.Forms.MouseButtons.Left Then
      Posy2 = e.Y
   End If
End Sub

Private Sub Label2_MouseMove(ByVal sender As Object, ByVal e As _
                        System.Windows.Forms.MouseEventArgs) Handles Label2.MouseMove
   If e.Button = System.Windows.Forms.MouseButtons.Left Then
      Dim Y2 As Integer = Posy2 - e.Y
      Label2.Top -= Y2
      Label1.Top = (PictureBox1.Height \ 2) + PictureBox1.Top
      PictureBox1.Height -= Y2
      Me.Refresh()
   End If
End Sub
End Class

上記実行図
 http://hanatyan.sakura.ne.jp/samplepic/vb8_239.htm



 [スレッド一覧へ] [親スレッドへ]