我正在尝试修改我创建的UserControl。 这是UserControl:
例如,我在UserControls
中有两个FlowLayotPanel
。当我将一个UserControl
拖到另一个时,我想合并UserControl
数据。合并他们的标签和图像。
根据this article,我没有能力将可拖动的UserControl作为参数传递给DoDragDrop函数。
我现在正在做的是这样的事情:
string dataString = "";
dataString += barcodeLabel.Text + "~";
string sImg64bit = ImageToBase64(scannedDocImg, ImageFormat.Bmp);
dataString += sImg64bit;
DoDragDrop(dataString, DragDropEffects.Copy);
我只是以字符串格式传递数据。我不认为这是个好主意? 有没有其他方法可以传递可拖动数据?有什么想法吗?
答案 0 :(得分:0)
感谢@HansPassant,我意识到答案在我的鼻子底下
这是我做的:
private void ScannedDocContainer_MouseDown(object sender, MouseEventArgs e)
{
DoDragDrop((ScannedDocContainer)sender, DragDropEffects.Copy);
}
private void ScannedDocContainer_DragDrop(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(typeof(ScannedDocContainer)))
{
ScannedDocContainer docContainerDragged = (ScannedDocContainer)e.Data.GetData(typeof(ScannedDocContainer));
...
"Extract the required data here"
...
}
}
这样我就得到了整个拖动的UserControl