Add NumericUpDown in PropertyGrid
Programming/C# / 2012. 1. 20. 13:56
public class NumericUpDownTypeEditor : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context)
{
if (context == null || context.Instance == null)
return base.GetEditStyle(context);
return UITypeEditorEditStyle.DropDown;
}
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
{
IWindowsFormsEditorService editorService;
if (context == null || context.Instance == null || provider == null)
return value;
try
{
// get the editor service, just like in windows forms
editorService = (IWindowsFormsEditorService)
provider.GetService(typeof(IWindowsFormsEditorService));
NumericUpDown nmr = new NumericUpDown();
nmr.Size = new Size(60, 120);
nmr.Minimum = 0;
nmr.Maximum = 200;
nmr.Increment = 0.01M; /// 업다운 증가 단위(float이 필요해서 0.01로 했음)
nmr.DecimalPlaces = 6; /// 소수 이하 표시할 자리 수.
nmr.Value = new decimal((float)value);
editorService.DropDownControl(nmr);
return (float)nmr.Value;
}
finally
{
editorService = null;
}
}
}
------------------------------------------------------------------------------------------------------
참조1 : http://social.msdn.microsoft.com/Forums/da-DK/netfxbcl/thread/370ce9d3-fc44-4cdc-9c76-dd913c9b572f
참조2 : http://social.msdn.microsoft.com/forums/en-US/winforms/thread/5441df96-5b72-4b99-8033-d467bd700c78
------------------------------------------------------------------------------------------------------
참조1 : http://social.msdn.microsoft.com/Forums/da-DK/netfxbcl/thread/370ce9d3-fc44-4cdc-9c76-dd913c9b572f
참조2 : http://social.msdn.microsoft.com/forums/en-US/winforms/thread/5441df96-5b72-4b99-8033-d467bd700c78
반응형
'Programming > C#' 카테고리의 다른 글
PropertyGrid catching mouse events (1) | 2012.02.01 |
---|---|
A C# 2008 Advanced Customizable PropertyGrid Control (0) | 2012.01.26 |
Nullable 형식 사용 (0) | 2012.01.19 |
MeasureString(문자열 길이 체크) (0) | 2012.01.17 |
Convert String To Enum Instance (0) | 2011.12.16 |