如何在事件中从sender获取ToolStripComboBox控件?
获取触发事件的ToolStripComboBox名称
你可以通过ComboBox的Parent属性找到它所在的ToolStripControlHost,再通过该Host的Owner属性获取对应的ToolStripComboBox,具体代码如下:
private void ToolStripComboBox_DropDown(object sender, EventArgs e) { ComboBox comboBox = (ComboBox)sender; // 获取ComboBox的父容器ToolStripControlHost ToolStripControlHost host = (ToolStripControlHost)comboBox.Parent; // 从Host的Owner拿到所属的ToolStripComboBox ToolStripComboBox toolStripComboBox = (ToolStripComboBox)host.Owner; string name = toolStripComboBox.Name; }
原理说明
ToolStripComboBox是通过ToolStripControlHost来包裹内部的ComboBox控件的,因此内部ComboBox的直接父控件是ToolStripControlHostToolStripControlHost的Owner属性指向的就是承载它的ToolStripComboBox实例
内容的提问来源于stack exchange,提问作者Rico Strydom
相关产品推荐
相关产品推荐

