winform c# listView鼠标拖拽的问题

limon758 2008-07-17 06:00:32
我是想把listView里的数据拖动到pictureBox里



我现在想拖动右下角的listView里的摄像机1到一个pictureBox里
拖到哪个pictureBox里就在哪个里边进行判断
判断拖动的是哪个摄象机,然后再在pictureBox判断需要显示出哪个视频

不知道这个思路是否正确

困扰了我好几天了,在网上搜了好多,没找到我想要的功能,而且还有的封装成了DLL,想看看怎么写的或者是修改一下都不行

我现在连拖拽的功能都不知道怎么写呢````

请各位帮忙
...全文
1040 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
cstester 2009-11-20
  • 打赏
  • 举报
回复
留着备用。
limon758 2008-07-21
  • 打赏
  • 举报
回复
解决了
JeffChung 6楼的代码就可以实现了

非常感谢!
limon758 2008-07-18
  • 打赏
  • 举报
回复
我的邮箱是
chineselimeng@126.com



有代码的给我发一下代码好吧```
aaajedll 2008-07-18
  • 打赏
  • 举报
回复
學習
limon758 2008-07-18
  • 打赏
  • 举报
回复
风中聆听
--------------------------------------
我照着你的代码研究了一天```
可是没研究明白

我现在那个只能接收拖拽过去的文件,但是listView拖过去的数据 鼠标显示不可放的状态,就是一个圆圈里有一个斜杠 \

好象
this.pictureBox1.AllowDrop = true;
这句对listView的数据不起作用呢``
JeffChung 2008-07-17
  • 打赏
  • 举报
回复
做了一下,很容易。把代码给你参考一下

private void Form1_Load(object sender, EventArgs e)
{
//在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);
}
}
JeffChung 2008-07-17
  • 打赏
  • 举报
回复
mark,最近也在弄这drag & drop
Ador3 2008-07-17
  • 打赏
  • 举报
回复

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;
}
宝_爸 2008-07-17
  • 打赏
  • 举报
回复
pictureBox1.AllowDrop==true

pictureBox1_DragEnter
pictureBox1_DragDrop
suiqirui19872005 2008-07-17
  • 打赏
  • 举报
回复
pictureBox.AllowDrop=true
51Crack 2008-07-17
  • 打赏
  • 举报
回复
listView_MouseDown
listView_MouseMove

pictureBox.AllowDrop==true

pictureBox_DragEnter
pictureBox_DragDrop

110,918

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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