2013-06-06 2 views
0

Ищете помощь здесь, у меня есть прозрачный ящик для изображений (с использованием fucshia как transparentKey) с именем PB1 с PB1.Location.X = 145, PB1.Location Y = 7 и кнопка с именем btnTakePic. Коды следующим образом:Нужна помощь по перекрытию изображений скриншотов

Private Sub btnTakePic_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTakePic.Click 
    Dim Bound As Rectangle 
    Dim Pic As Graphics 
    Dim screenshot As System.Drawing.Bitmap 
    Bound = Screen.PrimaryScreen.Bounds 
    screenshot = New System.Drawing.Bitmap(PB1.Bounds.Width, PB1.Bounds.Height, System.Drawing.Imaging.PixelFormat.Format32bppPArgb) 
    Pic = Graphics.FromImage(screenshot) 
    Pic.CopyFromScreen(CInt(LocPBX.Text), CInt(LocPBY.Text), 0, 0, Bounds.Size, CopyPixelOperation.SourceCopy) 
    PB1.Image = screenshot 
    PB1.SizeMode = PictureBoxSizeMode.StretchImage 
End Sub 

Private Sub Main_LocationChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.LocationChanged 
    LocX.Text = Me.Location.X 
    LocY.Text = Me.Location.Y 
    LocPBX.Text = Val(PB1.Location.X) + Val(LocX.Text) + 3 
    LocPBY.Text = Val(PB1.Location.Y) + Val(LocY.Text + 25) 
End Sub 

Теперь вопрос: он производит скриншот, как именно то, что я хочу, но когда я нажимаю btnTakePic, картина будет перекрывать старый, я хочу, чтобы удалить снимок старого изображения из памяти и заменяя его новым, как это сделать?

ответ

1

Убирайтесь предыдущее изображение и обновить PictureBox, прежде чем принимать новый выстрел:

Private Sub btnTakePic_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTakePic.Click 
    PB1.Image = Nothing 
    PB1.Refresh() 

    Dim pt As Point = PB1.PointToScreen(New Point(0, 0)) 
    Dim screenshot As New System.Drawing.Bitmap(PB1.Size.Width, PB1.Size.Height, System.Drawing.Imaging.PixelFormat.Format32bppPArgb) 
    Using Pic As Graphics = Graphics.FromImage(screenshot) 
     Pic.CopyFromScreen(pt.X, pt.Y, 0, 0, PB1.Size, CopyPixelOperation.SourceCopy) 
    End Using 
    PB1.Image = screenshot 
    PB1.SizeMode = PictureBoxSizeMode.StretchImage 
End Sub 

Как вы знаете, что вы принимаете картину, хотя, если вы уже отображается скриншот?

+0

Спасибо, он работает как шарм, отлично. Да, слава богу, вы напоминаете мне, я добавляю кнопку четкого изображения. – laruffii

Смежные вопросы