我在我的应用程序中使用拆分容器。一个父分体容器。父拆分容器的 panel2 中有 3 个拆分容器。
现在,当我单击嵌入在父容器的 panel2 中的拆分容器的面板之一时,如何查找哪个容器哪个面板被单击?
提前致谢!
最佳答案
您可以尝试订阅所有面板以使用相同的点击事件。发送者将是 SplitterPanel 类,该类将具有一个 Parent 属性(在 IDE 中隐藏,但它在那里),该属性将是 SplitContainer:
public Form1() {
InitializeComponent();
splitContainer1.Panel1.MouseClick += Panel_MouseClick;
splitContainer1.Panel2.MouseClick += Panel_MouseClick;
splitContainer2.Panel1.MouseClick += Panel_MouseClick;
splitContainer2.Panel2.MouseClick += Panel_MouseClick;
splitContainer3.Panel1.MouseClick += Panel_MouseClick;
splitContainer3.Panel2.MouseClick += Panel_MouseClick;
splitContainer4.Panel1.MouseClick += Panel_MouseClick;
splitContainer4.Panel2.MouseClick += Panel_MouseClick;
}
void Panel_MouseClick(object sender, MouseEventArgs e) {
SplitterPanel sp = sender as SplitterPanel;
SplitContainer sc = sp.Parent as SplitContainer;
MessageBox.Show(sc.Name + " - " + sp.Tag.ToString());
}
为了演示目的,我在每个面板的标签属性中输入了 1 或 2,因为 SplitContainer 中使用的子面板不使用 Name 属性。
关于c# - 如何通过鼠标单击找出拆分容器中的哪个面板被单击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12200167/