windows窗体的文件拖放问题

chenwei1108 2009-10-11 02:02:12
在做一个windows窗体项目,窗体的AllowDrop属性设置为true,代码写好以后测试拖放,发现代码被正常执行,但是鼠标还是显示的不可用。请大家指点一下。
...全文
64 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenwei1108 2009-10-30
  • 打赏
  • 举报
回复
一楼和二楼都是正解,但是分已经给出去了,不能反悔了。谢谢各位的回答!
lzsh0622 2009-10-18
  • 打赏
  • 举报
回复
楼主,1楼的代码是试过的有效果,如果不设置这个状态,图标是禁止符号,加上这段代码,方块中一个加号.

这个方法(Form1_DragEnter)一定要在属性窗口(DragEnter)指定它.
chenwei1108 2009-10-18
  • 打赏
  • 举报
回复
三个答案都没能解决我的问题,可能是我的表达有问题。感谢以上三楼的回答!
lzsh0622 2009-10-11
  • 打赏
  • 举报
回复
DragEventArgs.Effect 属性:获取或设置拖放操作中目标放置效果

以下效果可选:
All 从拖动源复制、移除数据,并将其滚动到放置目标中。
Copy 将数据复制到放置目标。
Link 将拖动源中的数据链接到放置目标。
Move 将拖动源的数据移动到放置目标。
None 放置目标不接受该数据。
Scroll 即将在放置目标中开始滚动,或当前正在滚动。
足球中国 2009-10-11
  • 打赏
  • 举报
回复
void clsbtn_MouseMove(object sender, MouseEventArgs e)
{

clsReservationTable clsbtn = sender as clsReservationTable;
if (clsbtn != null)
{
if (e.Button == MouseButtons.Left)
{
clsbtn.DoDragDrop(this, DragDropEffects.Copy);
}
}
}

void clsbtn_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Copy;
}

void clsbtn_DragDrop(object sender, DragEventArgs e)
{
clsReservationTable clsbtn = sender as clsReservationTable;
if (clsbtn != null)
{


clsReservationTable btn = e.Data.GetData(typeof(clsReservationTable)) as clsReservationTable;
if (btn != null)
{
if (btn.p_ResInfo.p_List.Count > 0)
{
Model.clsmq_Reservation model = btn.p_ResInfo.p_List[0];
model.a_TableID = clsbtn.p_id;
model.a_TableNubmer = clsbtn.p_TableNumber;
BLL.clsmq_Reservation bll = new AldeloEx.BLL.clsmq_Reservation();
bll.Update(model);
daServer.fnLog("move Reservation from TableNubmer:" + btn.p_TableNumber + " to :" + clsbtn.p_TableNumber);
this.refresh();
}
}

}
}
lzsh0622 2009-10-11
  • 打赏
  • 举报
回复
加上事件

private void Form1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.Bitmap) || e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.Copy;
}
else
{
e.Effect = DragDropEffects.None;
}
}
Windows中的通用应用程序的类名 使用API函数复制移动文件 使用API访问ListBox项 使用GetTempFileName创建一个唯一的临时文件 使用INI文件 使用INI文件保存、装载字体信息 使用TFileStream 使用TStream保存字符串 使用TTreeview显示目录 使窗体的关闭按钮失效 修改文本文件 允许在资源管理器中拖放文件 减小EXE文件大小 列举驱动器 列出目录下的子目录 创建快捷方式 创建目录 删除文件到回收站 判断文件夹是否共享 剪贴板存放多个控件流 加载CDROM图标 压缩和解压流 取MP3的ID3-Tag 取Program files目录 取可执行文件类型 取和文件类型关联的应用程序 取当前程序所在目录 取指定文件的版本信息 取文件修改日期 取文件日期 取文件最后访问日期 取文件版本号 取文件的所有者 取目录大小 取磁盘可用空间和总空间 取设置当前目录 取设置文件夹的日期 向Exe文件中添加数据 向文件写添加文本 在TMemo光标位置插入一个文件Windows开始后自动运行一个程序 在应用程序中添加Exe文件并且执行 在文件中搜索字符串 在文件中搜索指定文本 在文本文件中搜索文本 将剪贴板复制到流和恢复 将文本文件赋值给一个字符串 将资源文件中Rft文本装载到TRichEdit 将长文件名转换成短文件名 彻底删除文件 打开资源管理器且显示指定文件夹 捕获DOS应用程序的输出 改变TPageControls的颜色 改名、移动、删除文件或目录 显示‘打开方式’对话框 显示文件属性对话框 显示目录选择对话框 显示目录选择对话框并指定初始目录 替换正运行的DLL 检查文件是否ASCII格式 检查文件是否在本地驱动器 检查文件是否已打开 检查文件是否正在使用 检查目录是否存在 比较两个文件是否相同 添加去掉路径名后的符号 添加文件到文档菜单 清空文档 获取文件类型 获得快捷方式信息 获得文件大小 计算文件的校验和 设置文件日期 读 table-textfile 到 StringGrid 读取二进制文件使用ASCII显示 转换OEM到ANSI 转换短文件名为长文件名 运行一个程序或打开一个关联文件 返回UNC路径 通过CRC-32验证文件

110,567

社区成员

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

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

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