|
■No48731 (.SHO さん) に返信
> これだけの情報で回答するのは無理です。
> もう少し詳しく書いてください。
すいません。。
内容は、フォームの画面をラベル1とラベル2で2分割し、それぞれのラベルへエクスプローラから画像ファイルをドロップし、
ドロップされた画像を表示するという内容です。
ラベル1はちゃんと動くのですが、ラベル2へドロップを行うとドロップをうけつけてくれません。
基本的は同じソースを書いたつもりなのですが。
よろしくお願いします。
----以下ソース-----
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Label1の親コントロールをPictureBox1とする
PictureBox1.Controls.Add(Label1)
'Label2の親コントロールをPictureBox1とする
PictureBox2.Controls.Add(Label2)
End Sub
Private Sub Label1_DragDrop(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Label1.DragDrop
Dim strFilePass As String
Dim intH As Double
Dim intW As Double
Dim bmp As Bitmap
Dim small As Bitmap
'PictureBox1の初期化
If Me.PictureBox1.Image IsNot Nothing Then
Me.PictureBox1.Image.Dispose()
End If
Me.PictureBox1.Image = Nothing
strFilePass = e.Data.GetData(DataFormats.FileDrop)(0)
bmp = New Bitmap(strFilePass)
'画像サイズを変更する
If bmp.Size.Height <= bmp.Size.Width Then
intH = bmp.Size.Height * (PictureBox1.Size.Width / bmp.Size.Width)
intW = bmp.Size.Width * (PictureBox1.Size.Width / bmp.Size.Width)
Else
intH = bmp.Size.Height * (PictureBox1.Size.Height / bmp.Size.Height)
intW = bmp.Size.Width * (PictureBox1.Size.Height / bmp.Size.Height)
End If
small = New Bitmap(bmp, intW, intH)
bmp.Dispose()
PictureBox1.Image = small
pStr_BeforeFilePass = strFilePass
End Sub
Private Sub Label1_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Label1.DragEnter
If (e.Data.GetDataPresent(DataFormats.FileDrop)) Then
e.Effect = DragDropEffects.Copy
Else
e.Effect = DragDropEffects.None
End If
End Sub
Private Sub Label2_DragDrop(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Label2.DragDrop
Dim strFilePass As String
Dim intH As Double
Dim intW As Double
Dim bmp As Bitmap
Dim small As Bitmap
If Me.PictureBox2.Image IsNot Nothing Then
Me.PictureBox2.Image.Dispose()
End If
Me.PictureBox2.Image = Nothing
strFilePass = e.Data.GetData(DataFormats.FileDrop)(0)
bmp = New Bitmap(strFilePass)
'画像サイズを変更する
If bmp.Size.Height <= bmp.Size.Width Then
intH = bmp.Size.Height * (PictureBox2.Size.Width / bmp.Size.Width)
intW = bmp.Size.Width * (PictureBox2.Size.Width / bmp.Size.Width)
Else
intH = bmp.Size.Height * (PictureBox2.Size.Height / bmp.Size.Height)
intW = bmp.Size.Width * (PictureBox2.Size.Height / bmp.Size.Height)
End If
small = New Bitmap(bmp, intW, intH)
bmp.Dispose()
PictureBox2.Image = small
pStr_AeforeFilePass = strFilePass
End Sub
Private Sub Label2_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Label2.DragEnter
If (e.Data.GetDataPresent(DataFormats.FileDrop)) Then
e.Effect = DragDropEffects.Copy
Else
e.Effect = DragDropEffects.None
End If
End Sub
|