标签: drag-and-drop

ListView的DragEnter,DragOver,DragDrop事件未引发(AllowDrop = True)

这个很奇怪:

我的应用程序工作正常,但突然该死的ListView控件的事件不再被引发.它只是来来去去,没有任何明确的理由.(显然)我已将AllowDrop属性设置为True并处理DragEnter,DragOver和DragDrop事件,如下所示:

Private Sub lstApplications_DragDrop(ByVal sender As Object, ByVal e As    System.Windows.Forms.DragEventArgs) Handles lstApplications.DragDrop, Me.DragDrop
    m_fileNames = CType(e.Data.GetData(DataFormats.FileDrop), String())
    mnuType.Show(Cursor.Position, ToolStripDropDownDirection.BelowLeft)
End Sub

Private Sub lstApplications_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles lstApplications.DragEnter, Me.DragEnter, lstApplications.DragOver, Me.DragOver
    If chkMode.Checked OrElse Not e.Data.GetDataPresent(DataFormats.FileDrop, True) Then
        e.Effect = DragDropEffects.None
    Else
        e.Effect = DragDropEffects.Copy
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

我在这两个方法中编写的代码无关紧要,因为没有引发任何事件.这里有什么我想念的吗?


我在另一台机器上运行相同的应用程序,它工作正常.然后我重新启动了自己的机器,一切都开始了.我不确定,但似乎Windows出了问题.

.net events listview drag-and-drop winforms

11
推荐指数
2
解决办法
1万
查看次数

Qt在两个QListWidget之间拖放

我有两个QListWidget(list1和list2)

  • list1 应该能够从中接收物品 list2
  • list1 应该能够通过内部拖放重新组织
  • list2 应该能够从中接收物品 list1

list1->setSelectionMode(QAbstractItemView::SingleSelection);
list1->setDragEnabled(true);
list1->setDragDropMode(QAbstractItemView::DragDrop);
list1->viewport()->setAcceptDrops(true);
list1->setDropIndicatorShown(true);

ulist2->setSelectionMode(QAbstractItemView::SingleSelection);
list2->setDragEnabled(true);
list2->setDragDropMode(QAbstractItemView::InternalMove);
list2->viewport()->setAcceptDrops(true);
list2->setDropIndicatorShown(true);
Run Code Online (Sandbox Code Playgroud)

我不得不把它list2打开,InternalMove否则当我把它拖到它时,项目不会删除list1.

如果我把list1InternalMove我不能删除任何更多的就可以了.

我是否必须编写自己的拖放功能才能执行此操作?

qt drag-and-drop qlistwidget

11
推荐指数
1
解决办法
9584
查看次数

删除后,jquery draggable元素不再可拖动

我希望能够反复拖放相同的源元素.

在拖动图像的那一刻,它被成功克隆 - 即原始图像保持不变并且克隆很好地落入其新位置,但旧图像不再可拖动.检查元素显示class为属性(无值),即不显示class="ui-draggable"

正如你所看到的那样,我试图在克隆之后重新启用可拖动性,但它无法正常工作.

这是代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head> 
  <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script>
  <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.min.js"></script>
  <title></title>
  <script language="javascript" type="text/javascript">
    var copy = 0;
    var dragOptions = {
      helper: 'clone',
      cursor: 'hand',
      revert: 'invalid'
    };
    $(document).ready(function () {
      $("img").draggable(dragOptions);
      $("ul#bag > li").droppable({
        drop: function (event, ui) {
          copy++;
          var clone = $(ui.draggable).clone().attr("id", "img_" + copy);
          $(this).append(clone);
          clone.css("left", 0).css("top", 0);
          $(ui.draggable).draggable(dragOptions);
        }
      });
    });
</script>
  <style type="text/css">
    li
    {
      position: relative; …
Run Code Online (Sandbox Code Playgroud)

jquery drag-and-drop

11
推荐指数
1
解决办法
8981
查看次数

11
推荐指数
1
解决办法
743
查看次数

NSTableView并从Finder中拖放

我正在尝试将Finder拖放到我的应用程序的NSTableView中.该设置使用一个NSTableView数组控制器,它使用Cocoa绑定到Core Data存储区作为数据源.

我做了以下,基本上是我在SO和其他网站上发现的各种博文:

awakeFromNib我的视图控制器中,我打电话给:

[[self sourcesTableView] registerForDraggedTypes:[NSArray arrayWithObjects: NSPasteboardTypePNG, nil]];
Run Code Online (Sandbox Code Playgroud)

我将NSArrayController子类化,并将以下方法添加到我的子类中(子类化的原因是数组控制器需要被告知drop,因为它充当表视图的数据源):

- (BOOL) tableView: (NSTableView *) aTableView acceptDrop: (id < NSDraggingInfo >) info row: (NSInteger) row dropOperation: (NSTableViewDropOperation)operation
Run Code Online (Sandbox Code Playgroud)

我上面的实现目前只写入日志然后返回一个布尔值YES.

- (NSDragOperation) tableView: (NSTableView *) aTableView validateDrop: (id < NSDraggingInfo >) info proposedRow: (NSInteger) row proposedDropOperation: (NSTableViewDropOperation) operation
Run Code Online (Sandbox Code Playgroud)

在IB中我有数组控制器指向我的自定义NSArrayController子类.

结果:没有.当我将PNG从桌面拖到我的桌面视图上时,没有任何反应,文件很快就会弹回原点.我一定做错了什么但不明白什么.我哪里错了?

cocoa finder drag-and-drop

11
推荐指数
1
解决办法
5513
查看次数

将大文件切成块并使用ajax和html5 FileReader上传

我想要实现的是:

在前端,我使用html5文件api来读取文件,然后使用ajax将文件的内容上传到php后端,如果文件大小很小就可以了.但是,如果文件足够大,则会导致chrome崩溃.所以我使用file.slice将大文件拆分成块,当所有块都上传到php时,将块合并为一个完整的块.

代码如下:

前端:

<style>
#container {
     min-width:300px;
     min-height:200px;
     border:3px dashed #000;
}
</style>
<div id='container'>

</div>
<script>
function addDNDListener(obj){
    obj.addEventListener('dragover',function(e){
            e.preventDefault();
            e.stopPropagation();
    },false);
    obj.addEventListener('dragenter',function(e){
            e.preventDefault();
            e.stopPropagation();
    },false);
    obj.addEventListener('drop',function(e){
            e.preventDefault();
            e.stopPropagation();
            var ul = document.createElement("ul");
            var filelist = e.dataTransfer.files;
            for(var i=0;i<filelist.length;i++){
                    var file = filelist[i];
                    var li = document.createElement('li');
                    li.innerHTML = '<label id="'+file.name+'">'+file.name+':</label>  <progress value="0" max="100"></progress>';
                    ul.appendChild(li);
            }
            document.getElementById('container').appendChild(ul);
            for(var i=0;i<filelist.length;i++){
                    var file = filelist[i];
                    uploadFile(file);
            }
    },false);
}

function uploadFile(file){
    var loaded = 0;
    var step = 1024*1024;
    var …
Run Code Online (Sandbox Code Playgroud)

javascript php html5 drag-and-drop filereader

11
推荐指数
2
解决办法
3万
查看次数

用手柄拖放

我有一个包含16x16px跨度的div.我希望在用户点击并拖动此图标时启动拖动事件,但它应该拖动整个div.我正在尝试按照本教程:http://www.html5rocks.com/en/tutorials/dnd/basics/

我不知道如何用手柄做这个.请恭喜.

html5 drag-and-drop

11
推荐指数
2
解决办法
7733
查看次数

拖放不适用于C#Winforms Application

我正在尝试创建一个Windows窗体,我可以删除文件/文件夹.

我在WinForms应用程序中有以下代码

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_DragEnter(object sender, DragEventArgs e)
    {
        Debug.Print("DragEnter");
    }

    private void Form1_DragDrop(object sender, DragEventArgs e)
    {
        MessageBox.Show("Dropped!");
    }
}
Run Code Online (Sandbox Code Playgroud)

我已将AllowDrop属性设置为true.我已经尝试在Visual Studio中的调试中运行该应用程序.基于其他类似问题的答案,我尝试以管理员身份运行已编译的exe.我已经尝试以管理员身份运行已编译的exe .

但无论我做什么,我都无法触发DragDrop事件.但是,DragEnter事件触发.我错过了什么?

c# drag-and-drop winforms

11
推荐指数
3
解决办法
1万
查看次数

实现使用HTML中的拖放jQuery填充空白

我正在实现填充空白拖放功能.

在此输入图像描述

Codepen链接

在这里,我有一个上面的答案列表,即一个,两个,三个等,以及下面的空白区域,这些答案将被填充.

事情已经完成

1)从答案列表中拖动选项并填写空框.完成

2)如果我将答案从填充框拖到空框中,则前一个值应为空白.完成

问题来了

1)如果我将答案从填充框拖到另一个填充框中,那么如何切换两个框的值和位置.我认为我们可以获得前一个和当前一个的位置,然后交换位置但不知道如何实现它.

2)如果我将一个值从答案列表拖到一个填充的框中,那么如何交换它们

这是我到目前为止所做的:

$(document).ready(function() {
  var arr;
  $("span").droppable({
    accept: "ul > li",
    classes: {
      "ui-droppable-hover": "ui-state-hover"
    },
    drop: function(event, ui) {
      arr = [];
      var dragedElement = ui.draggable.text();
      $(this).addClass("ui-state-highlight");
      $(this).html(dragedElement);
      $('span').each(function() {
        arr.push($(this).text());
      });
      //console.log(JSON.stringify(arr));

      var matched = arr.filter((value) => value == dragedElement);
      //console.log(JSON.stringify(matched));

      $('span').each(function() {
        if ($(this).text() == matched[1]) {
          $(this).addClass('matched');
          //localStorage.setItem('prevValue', $(this).text());
          $('span.matched').text('');
          $(this).removeClass("ui-state-highlight");
          $(this).removeClass('matched');
        }
      });

      $(this).html(dragedElement);
      $(this).addClass("ui-state-highlight");

    }
  }); …
Run Code Online (Sandbox Code Playgroud)

html javascript css jquery drag-and-drop

11
推荐指数
1
解决办法
1352
查看次数

Chrome中与Windows规模相关的拖放问题(125%)

我在Chrome上有拖放问题(v69.0.3497.100).具体来说,当Windows缩放不是100%时,一些拖放事件会被触发,即使它们不应该被触发.

查看stackblitz示例,并尝试在其自身上拖动"蓝色"矩形(只需拖动,向下移动一点并放下).如果Windows缩放设置为100%(浏览器缩放也是100%),则会dragEnter按预期触发一个事件()(检查控制台).但是,如果Windows缩放设置为125%(但浏览器缩放仍为100%),则会触发三个事件(两个dragEnter和一个dragLeave),并且我预计只有一个事件被触发,因为元素被拖放到自身上(如这是100%规模水平的情况).

可能是因为这是Windows缩放(而不是浏览器的缩放),左边("lightred")矩形比它看起来更大,并且它在右边的矩形下面,并且事件传播到它,尽管我无法证明因为检查员中的所有元素都具有正确的大小.

在最新的Firefox,IE或Edge中似乎没有发生这种情况.

有谁知道为什么会发生这种情况以及如何解决这个问题?

谢谢.

html javascript drag-and-drop google-chrome

11
推荐指数
1
解决办法
1232
查看次数