改变 PropertyGrid 控件的编辑风格(3)——打开对话框 - 中国WEB开发者网络 (http://www.webasp.net) -- 技术教程 (http://www.webasp.net/article/) --- 改变 PropertyGrid 控件的编辑风格(3)——打开对话框 (http://www.webasp.net/article/26/25981.htm) |
| -- 作者:未知 -- 发布日期: 2005-08-18 |
改变 PropertyGrid 控件的编辑风格(3)——打开对话框
张昱e-zhangyu@vip.sina.com 效果:
适用场合: 1、 打开文件、打印设置等通用对话框 2、 打开特定的对话框
步骤一:定义从UITypeEditor 派生的类,以 OpenFileDialog 对话框为例,示例代码如下: using System; using System.Windows.Forms; using System.Drawing.Design; using System.Windows.Forms.Design;
namespace blog.csdn.net.zhangyuk { /// <summary> /// IMSOpenFileInPropertyGrid 的摘要说明。 /// </summary> public class PropertyGridFileItem : UITypeEditor { public override UITypeEditorEditStyle GetEditStyle( System.ComponentModel.ITypeDescriptorContext context) { return UITypeEditorEditStyle.Modal; }
public override object EditValue( System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value) { IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService) provider.GetService(typeof(IWindowsFormsEditorService)); if( edSvc != null ) { // 可以打开任何特定的对话框 OpenFileDialog dialog = new OpenFileDialog(); dialog.AddExtension = false; if( dialog.ShowDialog().Equals(DialogResult.OK) ) { return dialog.FileName; } } return value; } } }
步骤二:编辑属性类,指定编辑属性。示例如下: namespace blog.csdn.net.zhangyuk { public class SomeProperties { private string _finished_time = ""; …… // 文件 string _fileName = ""; [ Description("文件打开对话框"), Category("属性"), EditorAttribute(typeof(PropertyGridFileItem), typeof(System.Drawing.Design.UITypeEditor)) ] public String 文件 { get { return _fileName; } set { _fileName = value;} } …… } }
步骤三:设置PropertyGrid的属性对象。示例如下: private void Form1_Load(object sender, System.EventArgs e) { this.propertyGrid1.SelectedObject = new SomeProperties(); }
|
| webasp.net |