DragDrop

事件
示例应用于
在一个完整的拖放动作(即将一个控件拖动到一个对象上,并释放鼠标按钮)完成,或使用Drag 方法,并将其action 参数被设置为 2 (Drop) 时,该事件发生。

语法
Private Sub Form_(source As Control, x As Single, y As Single)
Private Sub MDIForm_(source As Control, x As Single, y As Single)
Private Sub object_([index As Integer,]source As Control, x As Single, y As Single)
事件语法包含下列部分:
说明
DragDrop事件过程用来控制在一个拖动操作完成时将会发生的情况。

例如,可将源控件移到一个新的位置或将一个文件从一个位置复制到另一个位置。

当source 参数中可能使用多个控件时:
•应使用TypeOf 关键字和If 语句一起确定与source 表示的控件的类型。

•应使用该控件的Tag 属性来标识一个控件,然后使用事件过程。

注意应使用DragMode 属性和Drag 方法来指定开始拖动的方法。

一旦开始拖动,可使用 DragOver 事件过程来处理位于事件前面的事件。

DragDrop 事件示例
本例演示将一个PictureBox控件放到另一个PictureBox控件上的视觉效果。

要尝试这个例子,可将代码粘贴到一个含有 3 个PictureBox控件的窗体声明部分。

将Picture1 和Picture2 的DragMode属性设置为1(自动)。

使用Picture属性将位图赋值给Picture1 和Picture2,然后按F5 键并将Picture1 或Picture2 拖到Picture3 上。

Private Sub Picture3_DragDrop (Source As Control, X as Single, Y As Single)
If TypeOf Source Is PictureBox Then
' 将 Picture3 位图设置为与源控件相同。

Picture3.Picture = Source.Picture
End If
End Sub
应用于:
CheckBox 控件
ComboBox 控件
CommandButton 控件
Data 控件
DirListBox 控件
FileListBox 控件
DriveListBox 控件
Form 对象、Forms 集合
Frame 控件
HScrollBar、VScrollBar 控件
Image 控件
Label 控件
ListBox 控件
MDIForm 对象
OLE 容器控件
OptionButton 控件
PictureBox 控件
TextBox 控件
UserControl 对象
相关基础知识:
对象表达式
说明具体对象的表达式,可以包含对象的容器。

例如,应用程序可以拥有Application 对象,其中包含Document对象,而Document对象又包含Text对象。

控件数组
有一公共名称、型态、事件过程的一组控件。

数组中的每个控件都有唯一索引数,可用来决定是哪个控件识别事件。

合集下载

input事件大全

input事件大全
onbeforeeditfocus 在包含于可编辑元素内的对象进入用户界面激活状态前或可编辑容器变成控件选中区前触发。
onbeforepaste 在选中区从系统剪贴板粘贴到文档前在目标对象上触发。
onbeforeupdate 当成功更新数据源对象中的关联对象前在数据绑定对象上触发。
onblur 在对象失去输入焦点时触发。
onmouseup 当用户在鼠标位于对象之上时释放鼠标按钮时触发。
onmousewheel 当鼠标滚轮按钮旋转时触发。
onmove 当对象移动时触发。
onmoveend 当对象停止移动时触发。
onmovestart 当对象开始移动时触发。
onpaste 当用户粘贴数据以便从系统剪贴板向文档传送数据时在目标对象上触发。
replaceNode 用其它元素替换对象。
scrollIntoView 将对象滚动到可见范围内,将其排列到窗口顶部或底部。
select 突出显示表单元素的输入区域。
setActive 设置对象为当前对象而不将对象置为焦点。
setAttribute 设置指定标签属性的值。
setAttributeNode 设置 attribute 对象为对象的一部分。
normalize 合并邻接 TextNode 对象以便生成一个常规的文档对象模型。
releaseCapture 释放当前文档中对象的鼠标捕捉。
removeAttribute 删除对象的给定标签属性。
removeAttributeNode 从对象中删除删除 attribute 对象。
applyElement 使得元素成为其它元素的子元素或父元素。
attachEvent 将指定函数绑定到事件,以便每当该事件在对象上触发时都调用该函数。

WPF中元素拖拽的两个实例

WPF中元素拖拽的两个实例

WPF中元素拖拽的两个实例 今天结合之前做过的⼀些拖拽的例⼦来对这个⽅⾯进⾏⼀些总结,这⾥主要⽤两个例⼦来说明在WPF中如何使⽤拖拽进⾏操作,元素拖拽是⼀个常见的操作,第⼀个拖拽的例⼦是将ListBox中的⼦元素拖拽到ListView的某⼀个节点,从⽽将该⼦元素作为当前节点的⼦节点。

第⼆个例⼦就是将ListView的某⼀项拖拽到另外⼀项上从⽽使两个⼦项位置互换,这两个例⼦的原理类似,实现细节上有所差别,下⾯就具体分析⼀下这些细节。

DEMO1 ⼀⽰例截图图⼀⽰例⼀截图 ⼆重点原理分析2.1 前台代码分析 这⼀部分主要是主界⾯的分析,主要包括两个部分⼀个是左侧的ListBox另外⼀个就是右侧的TreeView,在Treeview上设置了两个事件,⼀个是DragDrop.DragOver事件,另外⼀个是DragDrop.Drop事件,同时设置TreeView的AllowDrop属性为true,关于这两个事件后⾯再做重点分析。

⾸先看看前台代码:<Window x:Class="DragDrop.MainWindow"xmlns="/winfx/2006/xaml/presentation"xmlns:x="/winfx/2006/xaml"xmlns:d="/expression/blend/2008"xmlns:mc="/markup-compatibility/2006"xmlns:local="clr-namespace:DragDrop"mc:Ignorable="d"Title="MainWindow" Height="350" Width="525"><Window.Resources><DataTemplate x:Key="listBoxTemplate" DataType="{x:Type local:DataItem}"><TextBlock Text="{Binding Header}"/></DataTemplate><HierarchicalDataTemplate x:Key="treeViewTemplate" DataType="{x:Type local:DataItem}" ItemsSource="{Binding Items}"><TextBlock Text="{Binding Header}"/></HierarchicalDataTemplate></Window.Resources><Grid x:Name="mTopLevelGrid"><Grid.ColumnDefinitions><ColumnDefinition Width="*"/><ColumnDefinition Width="10"/><ColumnDefinition Width="*"/></Grid.ColumnDefinitions><ListBox x:Name="mListBox" Grid.Column="0" ItemsSource="{Binding Source={x:Static local:Data.Instance}, Path=ListBoxItems}" ItemTemplate="{StaticResource listBoxTemplate}"/><TreeView x:Name="mTreeView" Grid.Column="2" ItemsSource="{Binding Source={x:Static local:Data.Instance}, Path=TreeViewItems}" ItemTemplate="{StaticResource treeViewTemplate}" AllowDrop="True" DragDrop.DragOver="OnDragOver" DragDrop.Drop="OnDrop"/></Grid></Window> 2.2 后台代码分析 下⾯重点分析后台代码,在构造函数中我们⾸先为ListBox订阅了两个事件,⼀个是:PreviewMouseMove,另外⼀个是QueryContinueDrag,关于第⼀个事件就不做过多的说明,第⼆个事件是QueryContinueDrag:QueryContinueDrag在MSDN上的解释是在拖放操作期间键盘或⿏标按钮的状态改变时发⽣。

第九章 Delphi拖放编程

第九章 Delphi拖放编程

拖放(DragDrop)是Windows提供的一种快捷的操作方式。

作为基于Windows的开发工具,Delphi同样支持拖放操作,而且开发应用系统的拖放功能十分方便,真正体现了Delphi的强大功能和方便性。

Delphi提供的所有控件(Control,即能获得输入焦点的部件)都支持拖放操作,并有相应的拖放属性、拖放事件和拖放方法。

下面我们先介绍控件的拖放支持,而后再给出开发拖放操作的一般步骤和应用实例。

9.1 控件的拖放支持拖放操作中控件可以分为源控件和目标控件两类。

绝大部分控件既可以作为源控件也可以作为目标控件。

但也有一部分控件只能支持其中的一种。

9.1.1 拖放属性拖放属性主要有两个:● DragMode :拖动模式● DragCursor :拖动光标它们都是在拖放的源控件中设置。

DragMode控制用户在运行时间内当在控件上按下鼠标时控件如何反应。

如果DragMode置为dmAutomatic,那么当用户在控件上按下鼠标时拖动自动开始;如果DragMode置为dmManual(这是缺省值),则将通过处理鼠标事件来判断一个拖动是否可以开始。

DragCursor用于选择拖动时显示的光标,缺省值是CrDrag,一般不要去修改它。

在程序设计过程中通用的界面规范应该得到开发者的尊重。

但有时候为了特定的目的,开发者也可以把自己设计的光标赋给DragCursor。

9.1.2 拖放事件拖放事件主要有三个:●OnDragOver:拖动经过时激发●OnDragDrop:拖动放下时激发●OnEndDrop :拖动结束时激发前两个事件由目标控件响应,后一个事件由源控件响应。

OnDragOver事件最主要的功能是确定当用户就地放下拖动时控件是否可以接受。

它的参数包括:Source : TObject; {源控件}X,Y : Integer; {光标位置}State : TDragState; {拖动状态}var Accept : Boolean {能否接受}TDragState是一个枚举类型,表示拖放项目与目标控件的关系。

C#的ListView中多个Items的批量移动方法

C#的ListView中多个Items的批量移动方法

C#的ListView中多个Items的批量移动⽅法C# 把 DragDrop 实现的很全⾯。

⼀个 ListView,当其 AllowDrop = true 后,就会⽀持 DragDrop 了。

可以把外部的东西拖进 ListView ,也可以⽀持 ListView 中,Item 之间的互拖(⽐如⽤来改变Item之间的顺序)。

若要⽀持⼀批的 Items (如选中的⼀批)移到某个 Item 之后要怎么做呢?诀窍就在于 ItemDrag 这个实现中。

private void listView1_ItemDrag(object sender, ItemDragEventArgs e){//listView1.DoDragDrop(e.Item, DragDropEffects.Move);listView1.DoDragDrop(listView1.SelectedItems, DragDropEffects.Move);}如上代码,如果是把 Item A 拖到 Item B上,就⽤上⾯注释掉的那句。

如果是选中的⼀批,就⽤下⾯那句。

DoDragDrop 的第⼀个参数,其实就会被放到其它 DragXXXXX 实现⽅法的参数 DragEventArgs 的 Data 中。

对应的,需要在其它⼏个 DragOver,DragDrop,DragEnter ⽅法实现中,对输⼊的数据类型做⼀下判断,分类处理。

⼤⾄如下:if (e.Data.GetDataPresent(DataFormats.FileDrop)) //拖动的是⽂件列表{}else if (e.Data.GetDataPresent(typeof(ListView.SelectedListViewItemCollection))) //拖动的是选中的 Items{}else if (e.Data.GetDataPresent(typeof(ListViewItem))) //拖动的是某个 Item{}else//拖⼊的是其它未知的东西{}。

react-codemirror2 参数说明

react-codemirror2 参数说明

React-codemirror2是一个基于React的代码编辑器组件,它是对Codemirror编辑器的封装,使其更容易与React应用集成。

在使用React-codemirror2时,我们需要了解一些参数的意义和用法,以便更好地使用和定制这个组件。

一、valuevalue参数用于设置代码编辑器的初始值,可以是一个字符串,也可以是null。

如果设置为null,则代码编辑器会显示一个空的文本框。

如果传入一个字符串,则代码编辑器会显示这个字符串对应的内容。

当用户更改代码之后,value将不再更新。

二、optionsoptions参数是一个对象,用于配置代码编辑器的行为和外观。

它包括以下属性:1. mode:设置代码编辑器的语言模式,例如"javascript"、"xml"、"css"等。

2. theme:设置代码编辑器的主题,用于控制代码的颜色和外观。

3. lineNumbers:设置是否显示行号。

4. autofocus:设置代码编辑器是否自动获取焦点。

5. readOnly:设置代码编辑器是否为只读模式。

6. scrollbarStyle:设置滚动条的样式,可选值为"null"、"native"、"simple"。

7. dragDrop:设置是否允许拖放操作。

8. extraKeys:设置额外的按键绑定。

9. gutters:设置代码编辑器左侧的装饰线,可以用来显示代码行数或其他信息。

三、onBeforeChangeonBeforeChange参数是一个函数,用于监听代码编辑器内容发生变化之前的事件。

它接受三个参数:editor实例、编辑器改变之后的数据、和编辑器改变之前的数据。

我们可以在这个函数中做一些操作,比如对即将改变的内容进行检查或处理。

四、onChangeonChange参数也是一个函数,用于监听代码编辑器内容发生变化之后的事件。

键盘和鼠标事件

键盘和鼠标事件

例如:直接按光标键时移动图片的位置,按 下Shift键再按光标键时放缩图片,按 Shift+Ctrl键时复位图片的位置及大小。 将窗体的KeyPreview属性设置为True Image1的Strech属性设置为True.

Private Sub Form_Load() Label1.Caption = "直接按光标键移动图片,按下 Shift键再按光标键放缩图片,按Shift+Ctrl键复 位图片。" End Sub Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If Shift = 3 Then Image1.Move 2000, 1000, 1000, 1000 '复位图 片 End If
KeyPress事件中得到的是按键对应的字符 的ASCII码(KeyAscii) KeyUp,KeyDown事件中得到的是按键对应 的键号(KeyCode),键盘104个键都对应着 唯一的键号。

KeyPress事件 对象的KeyPress事件过程的一般格式为:
Privat Sub Object_KeyPress(KeyAscii As Integer)
Function ShiftStatus(Shift As Integer) As String Select Case Shift Case 0: s = "" Case 1: s = “Shift+" Case 2: s = "Ctrl+" Case 3: s = "Shift+Ctrl+" Case 4: s = "Alt+" Case 5: s = "Shift+Alt+" Case 6: s = "Ctrl+Alt+" Case 7: s = "Shift+Ctrl+Alt+" End Select ShiftStatus = s End Function

键盘与鼠标操作

第八章键盘与鼠标操作 (2w)程序在运行过程中,经常需要知道用户对键盘和鼠标的具体操作,例如用户按下键盘上的“A”键时是想输入字符“A”还是输入“a”呢,当用户利用鼠标选中“删除”时是想彻底删除还是想放入回收站呢等等,以便于根据不同的情况,执行不同的具体操作。

为此Visual Basic专门定义了和键盘与鼠标有关的事件和方法。

8-1键盘操作当我们敲击一下键盘上的某个按键时,将会先后触发对应对象的KeyDown、KeyPress、(对于文本框之类的对象还会触发Change)、KeyUp等一系列事件。

根据不同的具体应用,我们可以选择不同的事件进行编程。

需要说明的是,对键盘的某个按键进行操作时,触发的是目前具有输入焦点(Focus)对象的事件。

一般情况下窗体对象不响应这些事件,除非满足下面几个条件:1.目前窗体上没有添加任何对象,则窗体接收键盘事件。

2.目前窗体上有对象,但是它们属于下面两种情况:1)这类对象不具有接收焦点的能力,例如:标签、框架、形状(Shape)、Timer、Image等等2)这类对象本来可以接收焦点(例如:文本框),但目前处于Disabled状态。

3.窗体的KeyPreview属性为True。

所谓KeyPreview的属性为True,就是说无论在窗体内的什么控件内利用键盘输入,都需要事先经过窗体进行检查。

其中,前两种情况下只触发窗体的KeyDown、KeyPress、KeyUp事件,第三种情况下将先后触发窗体的KeyDown、控件的KeyDown、窗体的KeyPress、控件的KeyPress、窗体的KeyUp、控件的KeyUp事件。

8-1-1 KeyPress事件KeyPress事件过程的的形式有两种:Private Sub 对象名_KeyPress(KeyAscii As Integer) '用于非控件数组Private Sub 对象名_KeyPress(Index As Integer, KeyAscii As Integer) '用于控件数组其中:KeyAscii的值在本过程中由系统自动提供,就是用户输入字符的ASCII值。

大学计算机vb课程 第五章 常用控件【精选】


0--Unchecked:未被选定
False:未选定 1--Checked:选定
2--Grayed:灰色,禁止选择
Style属性
0--Standard:标准方式
1--Graphical:图形方式
Picture属性
未选定时的图标或位图
DownPicture属性 选定时的图标或位图
DisabledPicture属性 禁止选择时的图标或位图
选中。
Sorted(D):True:按字母顺序排列。False:按加入先后顺序排列。 Text(P) :被选中列表项的内容,如:
List 1.List(List 1.ListIndex) = List1.Text MultiSelect:0-None:禁止多项选择;
1-Simple:简单多项选择; 2-Extended:扩展多项选择。
常用事件
5.1 单选钮和复选框
有Click事件,因为单击时自动改变状态,故不需要编写过程。
【例5-1】
用单选按钮和复选框制作如图 所示窗口。当用户选择了“所在学 院”和“学习课程”后,单击“确 定”,则选择结果显示在下面的文 本【框属中性。设置】
默认名
Name属性
其它属性及设置
Option1 Option2 Option3 Check1 Check2 Check3 Check4 Label1
择的项目列出来,不 组合框有三种类型,由其Style属性值决定,Style
能直接修改项目。 可为0、1或2。
0——默认值。下拉式组合框。
1——简单组合框。
2——下拉式列表框。
常用属性
5.3 列表框和组合框
说明:P——只可在程序中设置或引用,D——只可在设计状态设置 List (PD) :字符型数组,存放列表框的项目,下标从0开始。 ListIndex(P):选中项目的序号,无项目被选定时为-1。 ListCount(P):项目的数量,ListCount-1是最后一项的下标。 Selected(P):逻辑数组。Selected(i)的值为True表示第i+1项被

VB教程(第2版) 第9章 鼠标、键盘和OLE


9.1.1 鼠标事件
当在图片框中移动鼠标时,不断地画线和画方块,实现连续画线和方块。 Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) '在图片框中移动鼠标 If Button = 1 And C2 = 1 Then Select Case C1 Case 1 Picture1.Line -(X, Y) Case 2 Picture1.Line (X1, Y1)-(X, Y), , BF End Select End If End Sub
9.1.1 鼠标事件
说明: (1)Button表示是哪个鼠标键被按下或释放。用0、1、2三个位表示鼠标 的左、右、中键,每位用0、1表示被按下或释放,三个位的二进制转换成十进 制就是Button的值,如图9.1所示,表9.1列出了按钮与常数值的对应关系。
十进制 0 1 2 3 4 5 6 7
二进制 000 001 010 011 100 101 110 111
图9.4 查看键代码
9.2 键盘事件
2. KeyPress事件 KeyPress事件是当键盘有键按下时触发的。KeyPress事件检测的键有Enter、 Tab、BackSpace以及键盘上的字母、数字和标点符号键,对于其他功能键、编 辑键和定位键,则不作响应。 语法: Private Sub 对象_KeyPress(KeyAscii As Integer) 说明: • 对象:是接受键盘事件的对象,由具有焦点的对象接收。 • KeyAscii:是按键对应的ASCⅡ码值。将keyAscii改为0时可取消本次击键, 这样对象便接收不到按键的字符。

VB事件大全集

用鼠标左键双击控件。 双击 Style 属性设置为 1(Simple) 的 ComboBox 控件中的项目, 或者在 FileListBox 、 ListBox 、 DataCombo 或 DataList 控 件中的项目。
语法 Private Sub Form_ DblClick ( ) Private Sub object _DblClick ( index As Integer)
一个控件来说,这类事件的发生是当:
用鼠标的左键或右键单击一个控件。对 CheckBox ,
CommandButton
, Listbox 或 OptionButton
控件来说, Click事来自仅当单击鼠标左键时发生。通过按下箭头键或者单击鼠标按钮,对 ComboBox或 ListBox 控件中的
项目进行选择。
PictureBox - 改变 PictureBox 的内容。该事件当一个 DDE 链接更新 数据或通过代码改变 Picture 属性的设置时发生。 TextBox - 改变文本框的内容。 该事件当一个 DDE 链接更新数据、 用户 改变正文或通过代码改变 Text 属性的设置时发生。 语法 Private Sub object _Change( [ index As Integer ] ) Change 事件语法包括下列部分:
如果可能, 应避免为控件编写能改变该控件内容的 Change 事件过程。 如 果编写了那样的过程, 应确保设置一个标志用来防止在当前变化进行中更 进一步的变化。 避免创建两个或两个以上其 Change 事件过程互相影响的控件。 例如,两 个 TextBox 控件在它们的 Change 事件期间互相更新。 避免对 HScrollBar 和 VScrollBar 控件在 Change 事件中使用 MsgBox 函数或语句。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档