关于调用剪切板的问题

zlylm 2007-11-06 08:56:07
我在我的一个小程序中用到了剪切板,具体代码是这样的
Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
Dim iData As IDataObject = Clipboard.GetDataObject()
Clipboard.SetDataObject(DBNull.Value)
Clipboard.SetDataObject(ListBox1.SelectedItem)
Dim iData1 As IDataObject = Clipboard.GetDataObject()
TextBox1.SelectedText = CType(iData1.GetData(DataFormats.Text), String)
TextBox1.Focus()
End Sub

但是我运行的时候每次复制到文本框的都是上次剪切板的东西,那位高手告诉我这是为什么?我的代码那里错了啊!
请指正
...全文
143 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zlylm 2007-11-06
  • 打赏
  • 举报
回复
我知道了是我系统有毛病。
zlylm 2007-11-06
  • 打赏
  • 举报
回复
将第一行移到第三行的话,报错。
Tiger_Zhao 2007-11-06
  • 打赏
  • 举报
回复
仔细想想你取到的是什么时候的数据!
将第一句移到原第三句下面。
zlylm 2007-11-06
  • 打赏
  • 举报
回复
上面代码错了,我的代码是这样的。不过问题还在
    Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
Dim iData As IDataObject = Clipboard.GetDataObject()
Clipboard.SetDataObject(DBNull.Value)
Clipboard.SetDataObject(ListBox1.SelectedItem)
TextBox1.SelectedText = CType(iData.GetData(DataFormats.Text), String)
TextBox1.Focus()
End Sub
zlylm 2007-11-06
  • 打赏
  • 举报
回复
我要做到的是:单击列表框,实现选中的词条显示在他旁边的文本框中。
你说的方法我试了,可是有错误:"SetText"不是“System.Windows.Forms.Clipboard”的成员。
Whislly 2007-11-06
  • 打赏
  • 举报
回复
Clipboard.SetDataObject(ListBox1.SelectedItem)
----------------------------------------------
这句代码拷到剪切板的数据格式是int类型而不是Text,所以下面这句:
TextBox1.SelectedText = CType(iData1.GetData(DataFormats.Text), String)
只能得到上次剪切板的Text文本。
你可以把上面那句改为:
Clipboard.SetText(ListBox1.SelectedItem)
应该就可以了。
不知道楼主要干什么,能说说目的吗?
Whislly 2007-11-06
  • 打赏
  • 举报
回复
public static void SetText(string text)
SetText是System.Windows.Forms.Clipboard的成员阿,莫非你的用的是VS2003?

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧