我正在尝试创建一个包含两列的表格,其中一列是可拖动的。决定使用普通的拖放功能。主要问题是这段代码 const DragItemContent =
我目前正在用 C# 设计一个简单的 WinForms UserControl,用户可以将 Excel 文件拖放到面板上,而不用浏览该文件。我在技术上可以使用它,但它非常......
当我开始拖动元素时,我会显示放置的目标容器,并更改原始容器的大小以将位置留给放置区域。 发生的情况是原件的大小...
我有一个下拉列表,我可以在其中选择一个人的全名,当我选择一个名字时,它应该在单元格中显示缩写。 我以某种方式得到了这个工作,但我现在的问题是……
拖动事件是否应该以这种方式工作,这是否是一个错误, 或者我在这里遗漏了任何声明或定义? 尝试拖动页面上任何启用拖动的元素时,不会发生任何情况。整个拖拽电动车...
为什么WPF中的drop事件抛出的异常在App.DispatcherUnhandledException中没有被捕获?
我创建了一个新的WPF应用程序(.net Framework)。 App.xaml 如下所示: 我创建了一个新的 WPF 应用程序(.net Framework)。 App.xaml 看起来像这样: <Application x:Class="TestD_D_Exception.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:TestD_D_Exception" StartupUri="MainWindow.xaml" DispatcherUnhandledException="Application_DispatcherUnhandledException"> <Application.Resources> </Application.Resources> </Application> 这是 App.xaml.cs 中的处理程序 private void Application_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e) { MessageBox.Show("Application_DispatcherUnhandledException"); } 在我的主窗口中只有一个控件: <TextBlock Name="dropZone" Text="Drop something here" AllowDrop="True" DragDrop.Drop="dropZone_Drop"/> 事件处理程序如下所示: private void dropZone_Drop(object sender, DragEventArgs e) { throw new NotImplementedException(); } 当我将 Outlook 中的电子邮件放入 TextBlock 时,Outlook 会打开一个如下所示的消息框: 当我将 NotImplementedException 更改为简单的通用异常时,什么也没有发生。 为什么DispatcherUnhandledException不处理异常?为什么它似乎是由 Outlook 处理的?如何处理 drop handler 中抛出的异常?有没有办法在全局范围内处理这些异常? 问题似乎与OLE的本质有关(这是拖放背后的技术。详细信息描述如下(WinForms也有同样的问题): https://stackoverflow.com/a/1567507/9930052 因此似乎没有办法为这些创建全局异常处理程序。所以我选择这样处理异常: private void dropZone_Drop(object sender, DragEventArgs e) { try { //Do drag&drop things here } catch (Exception exception) { m_log.Log(exception.Message); } }
我想知道如何在 GTK3 中拖放。这里的代码适用于 GTK2,在 GTK3 中不起作用。编译器抱怨 onDragDataReceived 中的 seldata 中没有数据元素。还有...
我有 DataGridView 绑定了一个列表,我按“myClass”中的“优先级”属性对其进行排序。 所以我想将“DataGridViewRow”拖动到某个位置以更改其“优先级”属性。 ...
我正在尝试为 ListView 实现拖放,其中每个单元格都是 GridPane。因此,我只是制作相应 GridPane 的快照并设置为拖动视图。 WritableImage im = rootPane.snaps...
我正在开发一个涉及元素水平拖放的网站。 我能够进行水平拖放。但我需要用户确定他实际放置元素的位置。为了...
我正在尝试弄清楚如何为一个孩子的父孩子隐藏溢出,但不为另一个孩子隐藏溢出。我正在为 Fivem 制作库存,所以我希望可以滚动浏览 sl...
我正在使用 Angular 14 版本 我正在使用 PrimeNg DragDrop 控件,在这里我面临一些问题,当我将节点从左树拖动到右树时,拖动的节点是
我必须为一些动态创建的列表项创建拖放功能,如下图所示: 这里,项目将使用 flex 来显示,项目将使用 flex-...
嵌套 dndkit SortableContext 的奇怪无限重新渲染行为
我目前正在尝试构建一个带有列表和任务的类似 trello 的应用程序。我想合并拖放功能,因此添加了 dndkit 库。我已经设法使任务可排序
我无法让一个孩子覆盖父母溢出,但不能让另一个孩子覆盖 #第二行{ 显示:网格; 网格模板列:重复(5,1fr); 间隙:0px; 高度:503px; } .在...
使用@dnd-kit/core库时通过警告获取aria-描述
我正在使用 @dnd-kit/core 库来实现拖放功能,但每次安装组件时我都会收到此特定警告。 警告:道具“aria-descriptedby”不匹配。瑟...
我有一个使用 C# winforms 的项目已经有一段时间了。我在windows 7发布之前实现了拖放功能。工作起来就像一个魅力。但是,当使用 Windows 7 时,它不起作用。 ...
在拖放中,如果我们必须先进行选择,然后必须通过单击按钮提交,那么我必须使用什么类型的函数或事件处理程序? 我尝试过react-beautiful-dnd,但是...
有没有办法通过拖放来调整容器的大小? 有没有办法通过拖放来调整<div>容器的大小? 最好的方法是使用CSS3。至少 Webkit 和 Gecko 支持。 根据w3c规范: div.my_class { resize:both; overflow:auto; /* something other than visible */ } Webkit 和 Firefox 对规范的解释方式不同。在 Webkit 中,大小仅限于设置的宽度和高度。还有一个问题:如何使用 CSS 使元素的尺寸调整为小于初始尺寸? 关于这一点。 div { border: 1px solid black; } .resizable-content { min-height: 30px; min-width: 30px; resize: both; overflow: auto; max-height: fit-content; max-width: fit-content; } <div class="resizable-content">Resize Me!</div> 纯 CSS3 方法的问题是只有 div 的右下角可以拖动。用户几乎肯定会想要从任意的边框调整 div 的大小,而不仅仅是右下角。 在浪费了大量时间尝试通过从 Stack Overflow 复制代码片段来完成此任务之后,我强烈建议在您的项目中使用优秀的 InteractJS JavaScript 库。它允许您轻松创建可调整大小(且可拖动)的 div,并且可以从各个方向调整大小。 let root = document.documentElement; let spliter = document.querySelector('.spliter-div'); let rowDiv = document.querySelector('.row-divs'); let cd1 = document.getElementById('cd-1'); var isDown = false; var isHover = false; var minWidth = 127; var maxWidth = 600; function setPosition() { var cl = this.document.querySelector('.col-div'); if (cl) { root.style.setProperty('--m-x', (cl.offsetWidth + 3.5) + 'px'); } minWidth = (parseInt(rowDiv.clientWidth / 10) * 2) + 22; maxWidth = parseInt(rowDiv.clientWidth - minWidth); } function moveTo(e) { if (e.clientX > minWidth && e.clientX < maxWidth) { if (cd1.classList.contains('col-div-flex')) { cd1.classList.remove('col-div-flex'); } cd1.style.width = e.clientX + 'px'; root.style.setProperty('--m-x', (e.clientX + 9.5) + 'px'); } } window.addEventListener('DOMContentLoaded', function (e) { setPosition(); }); window.addEventListener('resize', function (e) { setPosition(); }); root.addEventListener('mousedown', function (e) { if (isHover) { isDown = true; } }, true); document.addEventListener('mouseup', function (e) { isDown = false; if (isHover) { //... } }, true); document.addEventListener('mousemove', function (e) { if (isDown) { moveTo(e); } }); spliter.addEventListener('mouseenter', function (e) { isHover = true; spliter.style.cursor = 'col-resize'; }); spliter.addEventListener('mouseout', function (e) { isHover = false; }); :root{ --m-x: 0px; } html, body{ height: 100% ; width: 100% ; margin: 0 ; overflow: hidden ; } body{ margin-bottom: 60px ; } .container-divs{ display: flex ; flex: 1 1 auto ; height: 100% ; width: 100% ; } .row-divs{ display: flex ; width: 100% ; } .col-div{ margin: 3px ; padding: 3px ; min-width: 20% ; max-width: 80% ; } .col-div-flex{ flex: 1 0 0%; } .border-div{ border: 1px #a3a3a3 ridge; border-radius: 9px; } .spliter-div{ width: 5px ; height: 96% ; margin: 3px 0; background: #9a969676; position: absolute; left: var(--m-x); margin-top: 9px ; cursor: col-resize; } <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Divs - Resizeable</title> </head> <body> <div class="container-divs"> <div class="row-divs"> <div id="cd-1" class="col-div col-div-flex border-div" style="background-color:#d5ff00f7"> </div> <div class="spliter-div"></div> <div id="cd-2" class="col-div col-div-flex border-div" style="background-color: #6719b5e2"> </div> </div> </div> </body> </html> 如果您需要为 mustberesizeable tags 数组中的每个标签(也是 )执行某个函数 doOnResize(tag),您可以简单地将此数组复制到 window 的数组中: window[WIN_RESIZED] = [] // init the window's array for (var i in tags) { window[WIN_RESIZED].push(tags[i]) } 那组之后 window.addEventListener('resize', function(e){ for (var i in window[WIN_RESIZED]) { doOnResize(window[WIN_RESIZED][i]) } }) 必须写在开头的某个地方 const WIN_RESIZED = 'move_resized_divs' 具有任意名称,例如“move_resized_divs”
Angular 7 带来了强大的 DragDropModule:https://material.angular.io/cdk/drag-drop/examples 该文档涉及重新排列列表中的项目或在列表之间转移项目