在同一时刻,实际上可以把几块数据放置在 Clipboard 上,只要这几块数据的格式各不相同。这一点是很有用的,因为无法知道什么样的应用程序正在粘贴数据,所以用不同格式提供数据,就能增加为其它应用程序提供可用格式的机会。其它的 Clipboard 方法— GetData、SetData 和 GetFormat— 允许通过提供指定格式的数字,处理文本外的数据格式。这些格式与相应的数字一起,在下表进行了描述。
| 常数 | 描述 |
| VbCFLink | 动态数据交换链。 |
| VbCFText | 文本。本章前面的示例都用这一格式。 |
| VbCFBitmap | 位图。 |
| VbCFMetafile | 元文件。 |
| VbCFDIB | 与设备无关的位图。 |
| VbCFPalette | 调色板。 |
从图片框控件中剪切和粘贴数据时,可使用后四种格式。下列代码为使用任何标准控件,提供了通用的“剪切”、“复制”和“粘贴”命令。
Private Sub mnuCopy_Click () Clipboard.Clear If TypeOf Screen.ActiveControl Is TextBox Then Clipboard.SetText Screen.ActiveControl.SelText ElseIf TypeOf Screen.ActiveControl Is ComboBox Then Clipboard.SetText Screen.ActiveControl.Text ElseIf TypeOf Screen.ActiveControl Is PictureBox _ Then Clipboard.SetData Screen.ActiveControl.Picture ElseIf TypeOf Screen.ActiveControl Is ListBox Then Clipboard.SetText Screen.ActiveControl.Text Else '对其它控件没有意义的动作。End IfEnd SubPrivate Sub mnuCut_Click ()'首先要做的与复制相同。mnuCopy_Click'现在清除活动控件的内容。If TypeOf Screen.ActiveControl Is TextBox ThenScreen.ActiveControl.SelText = ""ElseIf TypeOf Screen.ActiveControl Is ComboBox ThenScreen.ActiveControl.Text = ""ElseIf TypeOf Screen.ActiveControl Is PictureBox _ThenScreen.ActiveControl.Picture = LoadPicture()ElseIf TypeOf Screen.ActiveControl Is ListBox ThenScreen.ActiveControl.RemoveItem Screen.ActiveControl.ListIndexElse'无操作响应其它控件。End IfEnd SubPrivate Sub mnuPaste_Click ()If TypeOf Screen.ActiveControl Is TextBox ThenScreen.ActiveControl.SelText = Clipboard.GetText()ElseIf TypeOf Screen.ActiveControl Is ComboBox ThenScreen.ActiveControl.Text = Clipboard.GetText()ElseIf TypeOf Screen.ActiveControl Is PictureBox _ThenScreen.ActiveControl.Picture = _Clipboard.GetData()ElseIf TypeOf Screen.ActiveControl Is ListBox ThenScreen.ActiveControl.AddItem Clipboard.GetText()Else'对其它控件没有意义的动作。End IfEnd Sub