确定已启动哪个列表框的事件

时间:2012-09-03 06:25:03

标签: c# .net winforms events

在我的C#Winforms应用程序中,我有一个tablelayoutpanel,它将包含2到64之间的任何列表框。用户可以双击列表框中的任何项目,然后将项目的信息传输到一个模态窗口,该窗口是已经开业了。

我的问题如下:

  1. 如何知道调用事件的列表框?

  2. 有没有办法找出列表框在tablelayoutpanel中的哪一行/列?

2 个答案:

答案 0 :(得分:3)

  

我如何知道调用该事件的列表框?

void ListBox_SomeEvent(object sender, EventArgs e)
{
    var lb = (ListBox)sender;  // that's the one
}

  

有没有办法找出列表框在tablelayoutpanel中的哪一行/列?

那个我不太确定的,因为我没有和那个班级一起工作太多。您当然可以在其父容器中获取ListBox的边界矩形,但我看了TableLayoutPanel的文档,我没有看到任何明显的东西(例如{{1}属性)。

答案 1 :(得分:2)

  

我如何知道调用该事件的列表框?

Ed S.已经回答了这个问题。也许要提一下,您需要将事件处理程序附加到列表框中:

var newListbox = new ListBox();
newListbox.DoubleClick += ListBox_SomeEvent;
_myTableLayouter.Controls.Add(newListBox);
  

有没有办法找出列表框在tablelayoutpanel中的哪一行/列?

使用TableLayoutPanel.GetCellPosition()。您将获得带有行和列的TableLayoutPanelCellPositiontion here