我是想把listView里的数据拖动到pictureBox里我现在想拖动右下角的listView里的摄像机1到一个pictureBox里
拖到哪个pictureBox里就在哪个里边进行判断
判断拖动的是哪个摄象机,然后再在pictureBox判断需要显示出哪个视频 不知道这个思路是否正确困扰了我好几天了,在网上搜了好多,没找到我想要的功能,而且还有的封装成了DLL,想看看怎么写的或者是修改一下都不行我现在连拖拽的功能都不知道怎么写呢````请各位帮忙
拖到哪个pictureBox里就在哪个里边进行判断
判断拖动的是哪个摄象机,然后再在pictureBox判断需要显示出哪个视频 不知道这个思路是否正确困扰了我好几天了,在网上搜了好多,没找到我想要的功能,而且还有的封装成了DLL,想看看怎么写的或者是修改一下都不行我现在连拖拽的功能都不知道怎么写呢````请各位帮忙
listView_MouseMovepictureBox.AllowDrop==truepictureBox_DragEnter
pictureBox_DragDrop
pictureBox1_DragDrop
private Point Position = new Point(0, 0);
private void treeFileView_ItemDrag(object sender, ItemDragEventArgs e)
{
DoDragDrop(e.Item, DragDropEffects.Move);
} private void treeFileView_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(typeof(TreeNode)))
{
e.Effect = DragDropEffects.Move;
}
else
e.Effect = DragDropEffects.None; } string filePath = Application.StartupPath.ToString() + "\\MyFiles\\";
private void treeFileView_DragDrop(object sender, DragEventArgs e)
{
TreeNode myNode = null;
if (e.Data.GetDataPresent(typeof(TreeNode)))
{
myNode = (TreeNode)(e.Data.GetData(typeof(TreeNode)));
}
else
{
MessageBox.Show("error");
} Position.X = e.X;
Position.Y = e.Y;
Position = treeFileView.PointToClient(Position);
TreeNode DropNode = treeFileView.GetNodeAt(Position);
if (DropNode.Parent == myNode || DropNode == myNode)
{ }
else if (DirAndFileOperator.IsFile(DropNode))
{
}
else
{
//DirAndFileOperator.MoveFolder(filePath + myNode.FullPath, filePath + DropNode.FullPath + @"\" + myNode.Name);
TreeNode DragNode = myNode;
myNode.Remove();
DropNode.Nodes.Add(DragNode);
}
treeFileView.SelectedNode = DropNode;
DropNode.Expand();
} private void treeFileView_DragOver(object sender, DragEventArgs e)
{
TreeNode myNode = null;
if (e.Data.GetDataPresent(typeof(TreeNode)))
{
e.Effect = DragDropEffects.Move;
myNode = (TreeNode)(e.Data.GetData(typeof(TreeNode)));
}
else
e.Effect = DragDropEffects.None;
Position.X = e.X;
Position.Y = e.Y;
Position = treeFileView.PointToClient(Position);
TreeNode DropNode = treeFileView.GetNodeAt(Position);
treeFileView.SelectedNode = DropNode;
}
{
//在Load的时候把picturebox的AllowDrop属性设置为true。
// ps:pictureBox的属性只能通过写代码设置,并且还没有智能感知
this.pictureBox1.AllowDrop = true;
} //在listView的ItemDrag里把摄像机名字传送
private void listView1_ItemDrag(object sender, ItemDragEventArgs e)
{
DoDragDrop(e.Item.ToString(), DragDropEffects.Copy);
} //判断是不是可以接收的数据类型
private void pictureBox1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(typeof(string)))
e.Effect = DragDropEffects.Copy;
else
e.Effect = DragDropEffects.None;
} //处理dragdrop事件
private void pictureBox1_DragDrop(object sender, DragEventArgs e)
{
string camera = string.Empty ;
if (e.Data.Equals(typeof(string)))
camera = e.Data.GetData(typeof(string)).ToString();
if (path.Length > 0)
{
//在这里做你的判断(判断拖动的是哪个摄象机,然后再在pictureBox判断需要显示出哪个视频)
//pictureBox1.Load(camera);
}
}
--------------------------------------
我照着你的代码研究了一天```
可是没研究明白我现在那个只能接收拖拽过去的文件,但是listView拖过去的数据 鼠标显示不可放的状态,就是一个圆圈里有一个斜杠 \好象
this.pictureBox1.AllowDrop = true;
这句对listView的数据不起作用呢``
JeffChung 6楼的代码就可以实现了非常感谢!