【发布时间】:2016-03-16 09:57:33
【问题描述】:
我正在尝试 d&d 我创建的 UserControl。 这是用户控件:
例如,我在FlowLayotPanel 中有两个这样的UserControls。当我将一个UserControl 拖到另一个时,我想合并UserControl 数据。合并他们的标签和图像。
根据this article,我无法将可拖动的 UserControl 作为参数传递给 DoDragDrop 函数。
我现在正在做的事情是这样的:
string dataString = "";
dataString += barcodeLabel.Text + "~";
string sImg64bit = ImageToBase64(scannedDocImg, ImageFormat.Bmp);
dataString += sImg64bit;
DoDragDrop(dataString, DragDropEffects.Copy);
我只是以字符串格式传递数据。我不认为这是个好主意? 还有其他方法可以传递可拖动数据吗?有什么想法吗?
【问题讨论】:
-
那篇文章没有这样说。您可以拖动任何您想要的东西,传递该用户控件的实例就可以了。在 DragEnter 事件处理程序中使用 e.Data.GetDataPresent(typeof(YourUserControl)) 。尽量让它被发现,用户永远不会知道 D+D 可以在没有手册的情况下工作。即使开始拖动也很困难,没有什么可点击的。
-
@HansPassant 成功了
标签: c# winforms user-controls draggable