73 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.ComponentModel;
 | |
| using System.Drawing;
 | |
| using System.Drawing.Design;
 | |
| using System.Windows.Forms.Design;
 | |
| using System.Windows.Forms;
 | |
| using System.ComponentModel.Design;
 | |
| using System.Collections;
 | |
| 
 | |
| namespace DevComponents.DotNetBar.Design
 | |
| {
 | |
|     public class TextMarkupUIEditor : System.Drawing.Design.UITypeEditor
 | |
|     {
 | |
|         #region Private Variables
 | |
|         private IWindowsFormsEditorService m_EditorService = null;
 | |
|         #endregion
 | |
| 
 | |
|         #region Internal Implementation
 | |
|         public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
 | |
|         {
 | |
|             if (context != null
 | |
|                 && context.Instance != null
 | |
|                 && provider != null)
 | |
|             {
 | |
|                 m_EditorService = provider.GetService(typeof(IWindowsFormsEditorService)) as IWindowsFormsEditorService;
 | |
| 
 | |
|                 if (m_EditorService != null)
 | |
|                 {
 | |
|                     TextMarkupEditor editor = new TextMarkupEditor();
 | |
|                     editor.buttonOK.Click += new EventHandler(MarkupEditorButtonClick);
 | |
|                     editor.buttonCancel.Click += new EventHandler(MarkupEditorButtonClick);
 | |
|                     
 | |
|                     if(value!=null)
 | |
|                         editor.inputText.Text = value.ToString();
 | |
| 
 | |
|                     m_EditorService.DropDownControl(editor);
 | |
| 
 | |
|                     if (editor.DialogResult == DialogResult.OK)
 | |
|                     {
 | |
|                         string text = editor.inputText.Text;
 | |
|                         editor.Dispose();
 | |
|                         return text;
 | |
|                     }
 | |
|                     editor.Dispose();
 | |
|                 }
 | |
|             }
 | |
| 
 | |
|             return value;
 | |
|         }
 | |
| 
 | |
|         void MarkupEditorButtonClick(object sender, EventArgs e)
 | |
|         {
 | |
|             if (m_EditorService != null)
 | |
|                 m_EditorService.CloseDropDown();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets the editor style used by the EditValue method.
 | |
|         /// </summary>
 | |
|         /// <param name="context">An ITypeDescriptorContext that can be used to gain additional context information.</param>
 | |
|         /// <returns>A UITypeEditorEditStyle value that indicates the style of editor used by EditValue. If the UITypeEditor does not support this method, then GetEditStyle will return None</returns>
 | |
|         public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context)
 | |
|         {
 | |
|             if (context != null && context.Instance != null)
 | |
|             {
 | |
|                 return UITypeEditorEditStyle.DropDown;
 | |
|             }
 | |
|             return base.GetEditStyle(context);
 | |
|         }
 | |
|         #endregion
 | |
|     }
 | |
| }
 |