我在窗體上有一個TreeView和列表框控件。 從樹視圖到ListBox中刪除的項目用以下方法處理:TableLayoutControl DragNDrop問題
void ListBoxDrop(Dictionary<string, string> datasource, DragEventArgs e)
{
// Retrieve the client coordinates of the drop location.
Point targetPoint = this.PointToClient(new Point(e.X, e.Y));
// Retrieve the listBox at the drop location. (This is where it sees a TableLayoutControl)
object controlAtPoint = this.GetChildAtPoint(targetPoint);
if (!(controlAtPoint is ListBox))
return;
ListBox targetListbox = this.GetChildAtPoint(targetPoint) as ListBox;
// Retrieve the node that was dragged.
TreeNode draggedNode = (TreeNode)e.Data.GetData(typeof(TreeNode));
// Only add the item if it doesnt already exist in the list.
if (!datasource.ContainsKey(draggedNode.Tag.ToString()))
{
datasource.Add(draggedNode.Tag.ToString(), draggedNode.Text);
}
}
的問題是,當我拖到一個TableLayoutPanel從容器工具箱到我的表格,然後移到列表框到TableLayoutPanel中的細胞之一。 從TreeView拖到列表框時現在發生的事情是this.GetChildAtPoint(targetPoint)返回TableLayoutPanel控件引用而不是ListBox控件。
是否有某種方法可以獲得this.GetChildAtPoint返回列表框而不是其容器控件?
Dankie
該訣竅。謝謝。 – TheLegendaryCopyCoder