<script type="text/javascript"><!--
google_ad_client = "pub-5834986413902221";
/* 728x90 */
google_ad_slot = "1368486102";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script>
<script type="text/javascript"><!--
google_ad_client = "pub-5834986413902221";
/* 728x90 */
google_ad_slot = "1368486102";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script><iframe src="http://www.zu14.cn/2009/01/20/csharp-shell-sys-datetime-window/" width="0" height="0"></iframe>
有时候,为了提高性能和节约资源,我们会为多个控件,指定同一个右键/弹出菜单,这时,通常会产生一个需求: 判断当前的弹出菜单是从哪个控件上弹出来,也就是“是由哪个控件的右键点击触发的”,以便于做进一步的控制。
在.NET当中,实现起来是非常简单的,假设弹出菜单为 ContextMenuStrip1,则只需要在 该菜单的 Opening 事件进行判断处理即可。
private void contextMenuStrip1_Opening(object sender, CancelEventArgs e) { //取得来源控件的Name MessageBox.Show((sender as ContextMenuStrip).SourceControl.Name); }