VB.NET中文本框实现文本拖拽

拖放如何进行


拖放实际上就如同用鼠标复制粘帖,因此你必须有一个可以复制或移动的源,也要有一个可以粘贴的目的地。在这两个操作过程中,数据是保存在内存中的。复制粘贴用的是剪切版,而拖放用的却是一种本质上是私有剪切板的Dataobject的对象。
下面是典型的托放操作的时间序列:


1、拖放(dragging)是通过调用源控件的DoDragDrop方法来初始化的,DoDragDrop有两个参数
◆data,指定将要传送的数据
◆allowedEffects,指定允许进行的操作(复制或移动)
这样自动创建了一个新的Dataobject对象


2、接下来就依次激发了GiveFeedBack事件。在大多数情况下,你并不需要担心GiveFeedBack事件,然而你如果想自定义拖放过程中的鼠标指针的话,你可以在这些地方加上你的代码。


3、任何有AllowDrop属性而且被设置成True的控件都是隐含的Drop对象。AllowDrop属性可以在设计时的属性窗口中进行设置,也可以在Form_load事件自动加载。


4、当鼠标移到某个控件时,就同时激发了这个控件的DragEnter事件。GetDataPresent方法是用来确认拖过来的数据是否适合目标控件,Effect属性是用来显示适当的鼠标指针。


5、如果用户在有效的目标控件上释放鼠标,就同时激发了DragDrop事件。DragDrop事件句柄中的代码从DataObject对象中释放数据并把它显示在目标控件中。


实际代码:

TextBox1的dragenter事件:

Private Sub TextBox1_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1.DragEnter
        If e.Data.GetDataPresent(DataFormats.FileDrop) Then
            e.Effect = DragDropEffects.Link
            TextBox1.Text = "" ' 清空输入框内容
        Else
            e.Effect = DragDropEffects.None
        End If
    End Sub

TextBox1的dragdrop事件:

Private Sub TextBox1_DragDrop(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1.DragDrop
        ' 强制进行回收
        GC.Collect()
        On Error Resume Next
        s1 = "" ' 初始化文件内容字符串
        nbpName = "" ' 初始化nbp文件名
        Dim files As Array = e.Data.GetData(DataFormats.FileDrop)
        For Each file As String In files
            TextBox1.AppendText(file)
        Next
    End Sub


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个详细的示例代码,用于将 DataGridView 指定单元格的文本替换为指定值: ```vb.net Private Sub ReplaceCellText(ByVal rowIndex As Integer, ByVal columnIndex As Integer, ByVal newText As String) '检查行索引和列索引是否有效 If rowIndex >= 0 AndAlso rowIndex < DataGridView1.Rows.Count AndAlso columnIndex >= 0 AndAlso columnIndex < DataGridView1.Columns.Count Then '获取指定单元格 Dim cell As DataGridViewCell = DataGridView1.Rows(rowIndex).Cells(columnIndex) '检查单元格的值是否为字符串类型 If TypeOf cell.Value Is String Then '替换单元格的文本 cell.Value = newText End If End If End Sub ``` 在这个示例,我们定义了一个名为 ReplaceCellText 的过程,用于替换 DataGridView 指定单元格的文本。我们首先检查行索引和列索引是否有效,然后获取指定单元格。接着,我们检查单元格的值是否为字符串类型,如果是,我们将单元格的文本替换为指定值。你需要将代码的 rowIndex、columnIndex 和 newText 替换为你的实际情况。 你可以在需要的地方调用 ReplaceCellText 过程来实现替换功能。例如,在按钮点击事件: ```vb.net Private Sub btnReplace_Click(sender As Object, e As EventArgs) Handles btnReplace.Click ReplaceCellText(2, 1, "指定值") End Sub ``` 当你点击按钮时,ReplaceCellText 过程将被调用,DataGridView 指定单元格的文本将被替换为指定值。你需要将代码的行索引、列索引和 newText 替换为你的实际情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值