请选择 进入手机版 | 继续访问电脑版


改变 PropertyGrid 控件的编辑风格(3)——打开对话框

36
回复
27628
查看
  [复制链接]
等级头衔

头衔 产品经理

Rank: 90Rank: 90

积分成就
UID
40
威望
60
贡献
60
在线时间
2 小时
注册时间
2014-2-24

中秋、国庆节勋章

发表于 2014-8-1 12:25:38 | 显示全部楼层 |阅读模式

效果:

propertygridex3.JPG

步骤一:定义从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();



         }



哎...今天够累的,签到来了7...
等级头衔

头衔 究级会员

Rank: 45Rank: 45Rank: 45

积分成就
UID
3556
威望
177
贡献
13
在线时间
1 小时
注册时间
2014-2-25

中秋、国庆节勋章

发表于 2016-9-1 09:09:04 | 显示全部楼层
不错不错
欢迎加入学客联盟
回复 支持 反对

使用道具 举报

等级头衔

头衔 中级会员

Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25

积分成就
UID
3640083
威望
61
贡献
0
在线时间
2 小时
注册时间
2016-3-7

中秋、国庆节勋章

发表于 2016-9-1 09:18:56 | 显示全部楼层
LZ真是人才
欢迎加入学客联盟
回复 支持 反对

使用道具 举报

等级头衔

头衔 高级会员

Rank: 35Rank: 35Rank: 35Rank: 35Rank: 35

积分成就
UID
885
威望
173
贡献
9
在线时间
1 小时
注册时间
2014-2-26

中秋、国庆节勋章

发表于 2016-9-1 09:35:12 | 显示全部楼层
非常好的内容,路过看看,保存一下
欢迎加入学客联盟
回复 支持 反对

使用道具 举报

等级头衔

头衔 高级会员

Rank: 35Rank: 35Rank: 35Rank: 35Rank: 35

积分成就
UID
885
威望
173
贡献
9
在线时间
1 小时
注册时间
2014-2-26

中秋、国庆节勋章

发表于 2016-9-1 09:35:42 | 显示全部楼层
好帖就是要顶
欢迎加入学客联盟
回复 支持 反对

使用道具 举报

等级头衔

头衔 中级会员

Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25

积分成就
UID
3639249
威望
62
贡献
0
在线时间
1 小时
注册时间
2016-2-18

中秋、国庆节勋章

发表于 2016-9-1 09:40:24 | 显示全部楼层
真心顶
欢迎加入学客联盟
回复 支持 反对

使用道具 举报

等级头衔

头衔 中级会员

Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25

积分成就
UID
3640227
威望
62
贡献
0
在线时间
1 小时
注册时间
2016-7-31

中秋、国庆节勋章

发表于 2016-9-19 15:05:11 | 显示全部楼层
难得一见的好帖
欢迎加入学客联盟
回复 支持 反对

使用道具 举报

等级头衔

头衔 中级会员

Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25

积分成就
UID
3640215
威望
65
贡献
0
在线时间
0 小时
注册时间
2016-6-30

中秋、国庆节勋章

发表于 2016-9-19 15:06:31 | 显示全部楼层
真心顶
欢迎加入学客联盟
回复 支持 反对

使用道具 举报

等级头衔

头衔 中级会员

Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25

积分成就
UID
3640222
威望
62
贡献
0
在线时间
1 小时
注册时间
2016-7-22

中秋、国庆节勋章

QQ

发表于 2016-9-19 15:08:11 | 显示全部楼层
非常好的内容,路过看看,保存一下
欢迎加入学客联盟
回复 支持 反对

使用道具 举报

等级头衔

头衔 中级会员

Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25

积分成就
UID
3640226
威望
61
贡献
0
在线时间
0 小时
注册时间
2016-7-30

中秋、国庆节勋章

发表于 2016-9-19 15:39:58 | 显示全部楼层
很好哦
欢迎加入学客联盟
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

电脑技术交流学习
132-3591-5703
周一至周五 9:00-18:00
意见反馈:admin@cnxklm.com

扫一扫访问手机版

Powered by NST! X3.4© 2001-2021技术支持( 闽ICP备14006427号 )|意见建议