繁体   English   中英

如何使属性网格像按钮的上下文菜单?

[英]how to make a property grid like context menu for button?

如何使属性网格像按钮的上下文菜单? 因此,在按钮上单击鼠标右键。 属性网格将是可见的,当单击其他位置时,将隐藏。

最好的主意可能是使用PropertyGrid控件显示选定的(单击的)对象属性: http : //msdn.microsoft.com/zh-cn/library/system.windows.forms.propertygrid.aspx

http://msdn.microsoft.com/en-us/library/aa302326.aspx

此控件中已实现了大多数“标准属性类型”的逻辑,例如String,Int ...

但是我不会在右键单击时立即显示它。 在所有Windows应用程序中,标准方法是:右键单击某个对象时,将获得该对象特定的上下文菜单,最后一项通常是“属性...”。 选择该选项后,将显示属性网格。

如果要使用PropertyGrid控件显示上下文菜单,则不确定上下文菜单控件是否支持该菜单。 但是,一种方法是使用其上的PropertyGrid制作新表单“ PropertyGridForm”。 然后,在您的Object.CellMouseDown事件上,仅显示该表单,如下所示:

 private void Button1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
 {
  if (e.Button == MouseButtons.Right)
  {
    PropertyGridForm f = new PropertyGridForm();
    f.PropertyGrid.SelectedObject = Button1; // (or sender?) whatever you need
    f.Location = e.Location;
    f.Show(); //or ShowDialog? 
  }
 }

您将必须找到关闭该表格的最佳方法。 您要在其上设置“关闭”按钮,还是在“离开”事件,“停用”事件上将其关闭? 取决于您到底需要什么行为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM