ComponentEditor Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Fornece a classe base para um editor de componente personalizado.
public ref class ComponentEditor abstract
public abstract class ComponentEditor
type ComponentEditor = class
Public MustInherit Class ComponentEditor
- Herança
-
ComponentEditor
- Derivado
Exemplos
O exemplo de código a seguir demonstra uma implementação de exemplo ComponentEditor .
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Drawing;
using System.Windows.Forms;
// This example demonstrates how to implement a component editor that hosts
// component pages and associate it with a component. This example also
// demonstrates how to implement a component page that provides a panel-based
// control system and Help keyword support.
namespace ComponentEditorExample
{
// The ExampleComponentEditor displays two ExampleComponentEditorPage pages.
public class ExampleComponentEditor : System.Windows.Forms.Design.WindowsFormsComponentEditor
{
// This method override returns an type array containing the type of
// each component editor page to display.
protected override Type[] GetComponentEditorPages()
{
return new Type[] { typeof(ExampleComponentEditorPage),
typeof(ExampleComponentEditorPage) };
}
// This method override returns the index of the page to display when the
// component editor is first displayed.
protected override int GetInitialComponentEditorPageIndex()
{
return 1;
}
}
// This example component editor page type provides an example
// ComponentEditorPage implementation.
internal class ExampleComponentEditorPage : System.Windows.Forms.Design.ComponentEditorPage
{
Label l1;
Button b1;
PropertyGrid pg1;
public ExampleComponentEditorPage()
{
// Initialize the page, which inherits from Panel, and its controls.
this.Size = new Size(400, 250);
this.Icon = new Icon("myicon.ico");
this.Text = "Example Page";
b1 = new Button();
b1.Size = new Size(200, 20);
b1.Location = new Point(200, 0);
b1.Text = "Set a random background color";
b1.Click += new EventHandler(this.randomBackColor);
this.Controls.Add(b1);
l1 = new Label();
l1.Size = new Size(190, 20);
l1.Location = new Point(4, 2);
l1.Text = "Example Component Editor Page";
this.Controls.Add(l1);
pg1 = new PropertyGrid();
pg1.Size = new Size(400, 280);
pg1.Location = new Point(0, 30);
this.Controls.Add(pg1);
}
// This method indicates that the Help button should be enabled for this
// component editor page.
public override bool SupportsHelp()
{
return true;
}
// This method is called when the Help button for this component editor page is pressed.
// This implementation uses the IHelpService to show the Help topic for a sample keyword.
public override void ShowHelp()
{
// The GetSelectedComponent method of a ComponentEditorPage retrieves the
// IComponent associated with the WindowsFormsComponentEditor.
IComponent selectedComponent = this.GetSelectedComponent();
// Retrieve the Site of the component, and return if null.
ISite componentSite = selectedComponent.Site;
if (componentSite == null)
return;
// Acquire the IHelpService to display a help topic using a indexed keyword lookup.
IHelpService helpService = (IHelpService)componentSite.GetService(typeof(IHelpService));
if (helpService != null)
helpService.ShowHelpFromKeyword("System.Windows.Forms.ComboBox");
}
// The LoadComponent method is raised when the ComponentEditorPage is displayed.
protected override void LoadComponent()
{
this.pg1.SelectedObject = this.Component;
}
// The SaveComponent method is raised when the WindowsFormsComponentEditor is closing
// or the current ComponentEditorPage is closing.
protected override void SaveComponent()
{
}
// If the associated component is a Control, this method sets the BackColor to a random color.
// This method is invoked by the button on this ComponentEditorPage.
private void randomBackColor(object sender, EventArgs e)
{
if (typeof(System.Windows.Forms.Control).IsAssignableFrom(this.Component.GetType()))
{
// Sets the background color of the Control associated with the
// WindowsFormsComponentEditor to a random color.
Random rnd = new Random();
((System.Windows.Forms.Control)this.Component).BackColor =
Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255));
pg1.Refresh();
}
}
}
// This example control is associated with the ExampleComponentEditor
// through the following EditorAttribute.
[EditorAttribute(typeof(ExampleComponentEditor), typeof(ComponentEditor))]
public class ExampleUserControl : System.Windows.Forms.UserControl
{
}
}
Comentários
Um editor de componentes é usado para editar um componente como um todo e pode ser usado para implementar uma interface do usuário semelhante à das páginas de propriedades. Você associa um editor de componentes a um componente usando o EditorAttribute atributo .
Notas aos Implementadores
Ao herdar dessa classe, você deve substituir o EditComponent(Object) método .
Construtores
ComponentEditor() |
Inicializa uma nova instância da classe ComponentEditor. |
Métodos
EditComponent(ITypeDescriptorContext, Object) |
Edita o componente e retorna um valor que indica se o componente foi modificado com base em um contexto determinado. |
EditComponent(Object) |
Edita o componente e retorna um valor que indica se o componente foi modificado. |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |