Пример #1
0
        public override object EditValue(ITypeDescriptorContext context,
                                         IServiceProvider provider,
                                         object value)
        {
            Palette original = (Palette)value;

            try
            {
                IWindowsFormsEditorService editorService
                    = (IWindowsFormsEditorService)
                      provider.GetService(typeof(IWindowsFormsEditorService));

                _paletteForm = new PaletteForm();

                if (value == null)
                {
                    value = new Palette();
                }

                // Take a copy of the original Palette in case the user cancels
                // the PaletteForm
                Palette copy = new Palette();
                foreach (Color c in original)
                {
                    copy.Add(c);
                }

                _paletteForm.Value         = original;
                _paletteForm.EditorService = editorService;
                DialogResult result = editorService.ShowDialog(_paletteForm);
                if (result == DialogResult.OK)
                {
                    return(_paletteForm.Value);
                }
                else
                {
                    return(copy);
                }
            }
            catch (Exception ex)
            {
                ExceptionForm ef = new ExceptionForm(ex);
                ef.ShowDialog();
                return(original);
            }
        }
Пример #2
0
		public override object EditValue( ITypeDescriptorContext context, 
		                                  IServiceProvider provider, 
		                                  object value )
		{
			Palette original = (Palette) value;
			try
			{
				IWindowsFormsEditorService editorService 
					= (IWindowsFormsEditorService) 
					provider.GetService( typeof( IWindowsFormsEditorService ) );
				
				_paletteForm = new PaletteForm();
				
				if( value == null )
				{
					value = new Palette();
				}
				
				// Take a copy of the original Palette in case the user cancels
				// the PaletteForm
				Palette copy = new Palette();
				foreach( Color c in original )
				{
					copy.Add( c );
				}
				
				_paletteForm.Value = original;
				_paletteForm.EditorService = editorService;
				DialogResult result = editorService.ShowDialog( _paletteForm );
				if( result == DialogResult.OK )
				{
					return _paletteForm.Value;
				}
				else
				{
					return copy;
				}
			}
			catch( Exception ex )
			{
				ExceptionForm ef = new ExceptionForm( ex );
				ef.ShowDialog();
				return original;
			}
		}