十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
很久没有上这里了,今天看到了这个问题,尝试做了一个;
创新互联公司主营广汉网站建设的网络公司,主营网站建设方案,app软件开发公司,广汉h5微信平台小程序开发搭建,广汉网站营销推广欢迎广汉等地区企业咨询
本例以源文本框TextBox1全部文字作为拖放文字为例,实现拖放
1、向一个窗体中添加两个文本框,分别名为TextBox1,TextBox2。注意:把TextBox2控件的AllowDrop属性设置成True,这点不要遗漏。
2、完整的代码如下:
Public Class Form1
Private MouseIsDown As Boolean = False
Private Sub TextBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseDown
'设置一个标志以显示鼠标已按下。
MouseIsDown = True
End Sub
Private Sub TextBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseMove
If MouseIsDown Then
'开始拖动(将TextBox1的文本内容作为拖放内容)。
TextBox1.DoDragDrop(TextBox1.Text, DragDropEffects.Copy)
End If
MouseIsDown = False
End Sub
Private Sub TextBox2_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox2.DragEnter
'检查正在被拖放的数据的格式。
If (e.Data.GetDataPresent(DataFormats.Text)) Then
'显示复制光标(表示是拖放行为)。
e.Effect = DragDropEffects.Copy
Else
'显示不放置光标(表示不是拖放行为)。
e.Effect = DragDropEffects.None
End If
End Sub
Private Sub TextBox2_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox2.DragDrop
'粘贴文本(将拖放内容作为TextBox2的文本内容)。
TextBox2.Text = e.Data.GetData(DataFormats.Text)
End Sub
End Class
例如,把文件"E:\新建文件夹\a.txt"复制到剪贴板
CreateObject("Shell.Application").NameSpace("E:\新建文件夹").ParseName("a.txt").InvokeVerb "复制(C)"
需要用到文本框的属性:
SelectionStart
这个就是返回你当前光标所在文本框的位置,注意位置从0开始计算(就是光标在最左边,返回0)。
然后,需要用到Len()函数,获得文本框当前的字符数。
基本思路:
获得:光标所在位置,SelectionStart
把原来的字符,按照 SelectionStart 值,分成前后两部分,这样把:
前部分与S 与后部分连接起来,赋值给文本框。
代码如下:
TextBox1.Text = Microsoft.VisualBasic.Left(TextBox1.Text, TextBox1.SelectionStart) s Microsoft.VisualBasic.Right(TextBox1.Text, Len(TextBox1.Text) - TextBox1.SelectionStart)
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Clipboard.SetDataObject(TextBox1.Text)
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
TextBox1.Text = Clipboard.GetDataObject().GetData(DataFormats.Text, False)
End Sub
获得文字直接用
Clipboard.GetText
获得图片可以用
Clipboard.GetData
设置文字直接用
Clipboard.SetText
设置图片可以用
Clipboard.SetData
清空
Clipboard.Clear
检测剪贴板中的内容
Clipboard.GetFormat(1)
返回True则文字
返回False则其他
不用剪切板可以这样
Dim s
Private Sub Command1_Click()
s = Text1.Text
Text1.Text = ""
End Sub
Private Sub Command2_Click()
s = Text1.Text
End Sub
Private Sub Command3_Click()
Text1.Text = Text1.Text + s
End Sub
Private Sub Form_Load()
Command1.Caption = "剪切"
Command2.Caption = "复制"
Command3.Caption = "粘贴"
End Sub
新建一个控件测试窗体工程,添加一个DataGridView控件,添加前面我们做的扩展控件DataGridViewExt的引用,并在Form1.Designer.vb文件中中将
Friend WithEvents DataGridView1 As System.Windows.Forms.DataGridView
Me.DataGridView1 = New System.Windows.Forms.DataGridView
分别改为:
Friend WithEvents DataGridView1 As DataGridViewExt.DataGridViewExt
Me.DataGridView1 = New DataGridViewExt.DataGridViewExt
然后就可以从Excel,记事本等程序往DataGridView粘贴数据了.