谢谢关注..

解决方案 »

  1.   

    Option ExplicitPrivate PBag As New PropertyBag
    Private B() As BytePrivate Sub Command1_Click()      '写入变量
      Set PBag = Nothing
      If Clipboard.GetFormat(vbCFBitmap) = True Then
        PBag.WriteProperty "BitMapData", Clipboard.GetData(vbCFBitmap)
        B() = PBag.Contents
      End If
    End SubPrivate Sub Command2_Click()      '写入剪贴板
      On Error Resume Next
      If IsEmpty(PBag.Contents(0)) = False Then
      End If
      If Err.Number = 9 Then
        Err.Clear
        On Error GoTo 0
        GoTo 100:
      End If
      Clipboard.SetData PBag.ReadProperty("BitMapData"), vbCFBitmap
    100:
    End Sub
      

  2.   


    能解释下IsEmpty(PBag.Contents(0)) 是什么意思吗
    还有If Err.Number = 9 Then 是判断什么?
      

  3.   


    Option Explicit
    Dim picBag As New PropertyBag
    Dim picData() As Byte
    '从剪贴板将图片读取到目标图片框
    Private Sub btnSetPicToPictureBox_Click()
        picD.Picture = Clipboard.GetData
    End Sub
    '从变量将图片读取到剪贴板
    Private Sub btnSetPictureInClipBoard_Click()
    On Error GoTo errSub
        If IsEmpty(picBag.Contents(0)) = False Then
            Clipboard.SetData picBag.ReadProperty("BitMapData"), vbCFBitmap
        End If
        btnSetPicToPictureBox.Enabled = True
        Exit Sub
    errSub:End Sub
    '读取图片到变量
    Private Sub btnSetPictureInVar_Click()
        Set picBag = Nothing
        picBag.WriteProperty "BitMapData", picS.Picture
        picData = picBag.Contents
        btnSetPictureInClipBoard.Enabled = True
    End SubPrivate Sub Form_Load()
        picD.Width = picS.Width
        picD.Height = picS.Height
        picS.Picture = LoadPicture("C:\1.bmp")
        btnSetPictureInVar.Enabled = True
        btnSetPictureInClipBoard.Enabled = False
        btnSetPicToPictureBox.Enabled = False
    End Sub
      

  4.   

    If Err.Number = 9 Then 
    是判断是否数组下标越界
      

  5.   

    IsEmpty(PBag.Contents(0))
    是判断存储图片的变量是否没有数据
      

  6.   

    Option Explicit
    Dim pic As IPictureDispPrivate Sub Command1_Click()
    If Clipboard.GetFormat(vbCFBitmap) Then Set pic = Clipboard.GetData(vbCFBitmap)
    Picture1.Picture = pic
    End SubPrivate Sub Command2_Click()
    If Not (pic Is Nothing) Then Clipboard.SetData pic, vbCFBitmap
    End Sub
      

  7.   


    Option Explicit
    Dim picBag As New PropertyBag
    Dim picData() As Byte
    '清除picD内容
    Private Sub btnPicDCls_Click()
        Set picD.Picture = Nothing
    End Sub'从剪贴板将图片读取到目标图片框
    Private Sub btnSetPicToPictureBox_Click(Index As Integer)
        If Index = 0 Then
            picD.Picture = Clipboard.GetData    '从剪贴板
        Else
            picD.Picture = picBag.ReadProperty("BitMapData", vbCFBitmap)    '从变量
        End If
    End Sub'从变量将图片读取到剪贴板
    Private Sub btnSetPictureInClipBoard_Click()
    On Error GoTo errSub
        If IsEmpty(picBag.Contents(0)) = False Then
            Clipboard.SetData picBag.ReadProperty("BitMapData"), vbCFBitmap
        End If
        btnSetPicToPictureBox(0).Enabled = True
        btnSetPicToPictureBox(1).Enabled = True
        Exit Sub
    errSub:End Sub
    '读取图片到变量
    Private Sub btnSetPictureInVar_Click()
        Set picBag = Nothing
        picBag.WriteProperty "BitMapData", picS.Picture
        picData = picBag.Contents
        btnSetPictureInClipBoard.Enabled = True
    End SubPrivate Sub Form_Load()
        picS.AutoRedraw = True
        picD.AutoRedraw = True
        picD.Width = picS.Width
        picD.Height = picS.Height
        picS.Picture = LoadPicture(App.Path & "\1.bmp")
        btnSetPictureInVar.Enabled = True
        btnSetPictureInClipBoard.Enabled = False
        btnSetPicToPictureBox(0).Enabled = False
        btnSetPicToPictureBox(1).Enabled = False
    End Sub
      

  8.   

    对不起,现在才翻出帖子。
    IsEmpty(PBag.Contents(0))在PBag的内容没有被赋值时会出错的。
    所以利用这一点,加上错误捕捉,可以判断PBag.Contents()这个Byte数组是否被赋值,是否为空