EventsTab Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Fornisce un oggetto PropertyTab in grado di visualizzare gli eventi per la selezione e il collegamento.
public ref class EventsTab : System::Windows::Forms::Design::PropertyTab
public class EventsTab : System.Windows.Forms.Design.PropertyTab
type EventsTab = class
inherit PropertyTab
Public Class EventsTab
Inherits PropertyTab
- Ereditarietà
Esempio
Nell'esempio di codice seguente viene fornito un esempio EventsTabdi . Quando selezionata, vengono EventsTab elencati gli eventi in un componente in ordine di tipo delegato.
#using <System.Windows.Forms.dll>
#using <System.Drawing.dll>
#using <System.dll>
using namespace System;
using namespace System::ComponentModel;
using namespace System::ComponentModel::Design;
using namespace System::Collections;
using namespace System::Drawing;
using namespace System::IO;
using namespace System::Reflection;
using namespace System::Runtime::Serialization;
using namespace System::Runtime::Serialization::Formatters::Binary;
using namespace System::Windows::Forms;
using namespace System::Windows::Forms::Design;
ref class TypeEventsTab;
// This component adds a TypeEventsTab to the Properties Window.
[PropertyTabAttribute(TypeEventsTab::typeid,PropertyTabScope::Document)]
public ref class TypeEventsTabComponent: public Component
{
public:
TypeEventsTabComponent(){}
};
// This example events tab lists events by their delegate type.
[System::Security::Permissions::PermissionSetAttribute
(System::Security::Permissions::SecurityAction::InheritanceDemand, Name="FullTrust")]
[System::Security::Permissions::PermissionSetAttribute
(System::Security::Permissions::SecurityAction::Demand, Name="FullTrust")]
public ref class TypeEventsTab: public System::Windows::Forms::Design::EventsTab
{
private:
// This string contains a Base-64 encoded and serialized example
// property tab image.
[BrowsableAttribute(true)]
String^ img;
IServiceProvider^ sp;
public:
TypeEventsTab( IServiceProvider^ sp )
: EventsTab( sp )
{
this->sp = sp;
String^ s = "AAEAAAD/////AQAAAAAAAAAMAgAAAFRTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj0xLjAuMzMwMC4w"
"LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRt"
"YXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAtgIAAAJCTbYCAAAAAAAANgAAACgAAAANAAAAEAAAAAEAGAAAAAAAAAAAAMQOAADED"
"gAAAAAAAAAAAADO1tnO1tnO1tnO1tnO1tnO1tnO1tnO1tnO1tnO1tnO1tnO1tnO1tn/ztbZztbZHh4eHh4eztbZztbZztbZztbZztb"
"ZztbZztbZztbZztbZ/87W2c7W2QDBAB4eHh4eHs7W2c7W2c7W2c7W2c7W2c7W2c7W2c7W2f/O1tnO1tnO1tkAwQAeHh4eHh7O1tnO1"
"tnO1tnO1tnO1tnO1tnO1tn/ztbZztbZlJSU////AMEAHh4eHh4eztbZztbZztbZztbZztbZztbZ/87W2c7W2c7W2ZSUlP///wDBAB4"
"eHh4eHs7W2c7W2c7W2c7W2c7W2f/O1tnO1tnO1tnO1tmUlJT///8AwQAeHh4eHh7O1tnO1tnO1tnO1tn/ztbZHh4eHh4eHh4eHh4eH"
"h4e////AIAAHh4eHh4eztbZztbZztbZ/87W2ZSUlP///wDBAADBAADBAADBAADBAACAAB4eHh4eHs7W2c7W2f/O1tnO1tmUlJT///8"
"AwQAAgAAeHh4eHh7O1tnO1tnO1tnO1tnO1tn/ztbZztbZztbZlJSU////AMEAAIAAHh4eHh4eztbZztbZztbZztbZ/87W2c7W2c7W2"
"c7W2ZSUlP///wDBAACAAB4eHh4eHs7W2c7W2c7W2f/O1tnO1tnO1tnO1tnO1tmUlJT///8AwQAAgAAeHh4eHh7O1tnO1tn/ztbZztb"
"ZztbZztbZztbZztbZlJSU////AMEAAIAAHh4eHh4eztbZ/87W2c7W2c7W2c7W2c7W2c7W2c7W2ZSUlP///wDBAACAAB4eHs7W2f/O1"
"tnO1tnO1tnO1tnO1tnO1tnO1tnO1tnO1tnO1tnO1tnO1tnO1tn/Cw==";
img = s;
}
// Returns the properties of the specified component extended with a
// CategoryAttribute reflecting the name of the type of the property.
virtual System::ComponentModel::PropertyDescriptorCollection^ GetProperties( ITypeDescriptorContext^ /*context*/, Object^ component, array<System::Attribute^>^attributes ) override
{
// Obtain an instance of the IEventBindingService.
IEventBindingService^ eventPropertySvc = dynamic_cast<IEventBindingService^>(sp->GetService( IEventBindingService::typeid ));
// Return if an IEventBindingService could not be obtained.
if ( eventPropertySvc == nullptr )
return gcnew PropertyDescriptorCollection( nullptr );
// Obtain the events on the component.
EventDescriptorCollection^ events = TypeDescriptor::GetEvents( component, attributes );
// Create an array of the events, where each event is assigned
// a category matching its type.
array<EventDescriptor^>^newEvents = gcnew array<EventDescriptor^>(events->Count);
for ( int i = 0; i < events->Count; i++ )
{
array<Attribute^>^temp = {gcnew CategoryAttribute( events[ i ]->EventType->FullName )};
newEvents[ i ] = TypeDescriptor::CreateEvent( events[ i ]->ComponentType, events[ i ], temp );
}
events = gcnew EventDescriptorCollection( newEvents );
// Return event properties for the event descriptors.
return eventPropertySvc->GetEventProperties( events );
}
property String^ TabName
{
// Provides the name for the event property tab.
virtual String^ get() override
{
return "Events by Type";
}
}
property System::Drawing::Bitmap^ Bitmap
{
// Provides an image for the event property tab.
virtual System::Drawing::Bitmap^ get() override
{
System::Drawing::Bitmap^ bmp = gcnew System::Drawing::Bitmap( DeserializeFromBase64Text( img ) );
return bmp;
}
}
private:
// This method can be used to retrieve an Image from a block of
// Base64-encoded text.
Image^ DeserializeFromBase64Text( String^ text )
{
Image^ img = nullptr;
array<Byte>^memBytes = Convert::FromBase64String( text );
IFormatter^ formatter = gcnew BinaryFormatter;
MemoryStream^ stream = gcnew MemoryStream( memBytes );
img = dynamic_cast<Image^>(formatter->Deserialize( stream ));
stream->Close();
return img;
}
};
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Drawing;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
namespace EventsTabExample
{
// This component adds a TypeEventsTab to the Properties Window.
[PropertyTabAttribute(typeof(TypeEventsTab), PropertyTabScope.Document)]
public class TypeEventsTabComponent : Component
{
public TypeEventsTabComponent()
{
}
}
// This example events tab lists events by their delegate type.
public class TypeEventsTab : System.Windows.Forms.Design.EventsTab
{
[BrowsableAttribute(true)]
// This string contains a Base-64 encoded and serialized example
// property tab image.
private string img = "AAEAAAD/////AQAAAAAAAAAMAgAAAFRTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj0xLjAuMzMwMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAtgIAAAJCTbYCAAAAAAAANgAAACgAAAANAAAAEAAAAAEAGAAAAAAAAAAAAMQOAADEDgAAAAAAAAAAAADO1tnO1tnO1tnO1tnO1tnO1tnO1tnO1tnO1tnO1tnO1tnO1tnO1tn/ztbZztbZHh4eHh4eztbZztbZztbZztbZztbZztbZztbZztbZztbZ/87W2c7W2QDBAB4eHh4eHs7W2c7W2c7W2c7W2c7W2c7W2c7W2c7W2f/O1tnO1tnO1tkAwQAeHh4eHh7O1tnO1tnO1tnO1tnO1tnO1tnO1tn/ztbZztbZlJSU////AMEAHh4eHh4eztbZztbZztbZztbZztbZztbZ/87W2c7W2c7W2ZSUlP///wDBAB4eHh4eHs7W2c7W2c7W2c7W2c7W2f/O1tnO1tnO1tnO1tmUlJT///8AwQAeHh4eHh7O1tnO1tnO1tnO1tn/ztbZHh4eHh4eHh4eHh4eHh4e////AIAAHh4eHh4eztbZztbZztbZ/87W2ZSUlP///wDBAADBAADBAADBAADBAACAAB4eHh4eHs7W2c7W2f/O1tnO1tmUlJT///8AwQAAgAAeHh4eHh7O1tnO1tnO1tnO1tnO1tn/ztbZztbZztbZlJSU////AMEAAIAAHh4eHh4eztbZztbZztbZztbZ/87W2c7W2c7W2c7W2ZSUlP///wDBAACAAB4eHh4eHs7W2c7W2c7W2f/O1tnO1tnO1tnO1tnO1tmUlJT///8AwQAAgAAeHh4eHh7O1tnO1tn/ztbZztbZztbZztbZztbZztbZlJSU////AMEAAIAAHh4eHh4eztbZ/87W2c7W2c7W2c7W2c7W2c7W2c7W2ZSUlP///wDBAACAAB4eHs7W2f/O1tnO1tnO1tnO1tnO1tnO1tnO1tnO1tnO1tnO1tnO1tnO1tnO1tn/Cw==";
private IServiceProvider sp;
public TypeEventsTab(IServiceProvider sp) : base(sp)
{
this.sp = sp;
}
// Returns the properties of the specified component extended with a
// CategoryAttribute reflecting the name of the type of the property.
public override System.ComponentModel.PropertyDescriptorCollection
GetProperties(ITypeDescriptorContext context, object component,
System.Attribute[] attributes)
{
// Obtain an instance of the IEventBindingService.
IEventBindingService eventPropertySvc = (IEventBindingService)
sp.GetService(typeof(IEventBindingService));
// Return if an IEventBindingService could not be obtained.
if (eventPropertySvc == null)
return new PropertyDescriptorCollection(null);
// Obtain the events on the component.
EventDescriptorCollection events =
TypeDescriptor.GetEvents(component, attributes);
// Create an array of the events, where each event is assigned
// a category matching its type.
EventDescriptor[] newEvents = new EventDescriptor[events.Count];
for (int i = 0; i < events.Count; i++)
newEvents[i] = TypeDescriptor.CreateEvent(events[i].ComponentType, events[i],
new CategoryAttribute(events[i].EventType.FullName));
events = new EventDescriptorCollection(newEvents);
// Return event properties for the event descriptors.
return eventPropertySvc.GetEventProperties(events);
}
// Provides the name for the event property tab.
public override string TabName
{
get
{
return "Events by Type";
}
}
// Provides an image for the event property tab.
public override System.Drawing.Bitmap Bitmap
{
get
{
Bitmap bmp = new Bitmap(DeserializeFromBase64Text(img));
return bmp;
}
}
// This method can be used to retrieve an Image from a block of
// Base64-encoded text.
private Image DeserializeFromBase64Text(string text)
{
Image img = null;
byte[] memBytes = Convert.FromBase64String(text);
IFormatter formatter = new BinaryFormatter();
MemoryStream stream = new MemoryStream(memBytes);
img = (Image)formatter.Deserialize(stream);
stream.Close();
return img;
}
}
}
Costruttori
EventsTab(IServiceProvider) |
Inizializza una nuova istanza della classe EventsTab. |
Proprietà
Bitmap |
Ottiene l'immagine bitmap visualizzata per l'oggetto PropertyTab. (Ereditato da PropertyTab) |
Components |
Ottiene o imposta la matrice di componenti a cui è associata la scheda di proprietà. (Ereditato da PropertyTab) |
HelpKeyword |
Ottiene la parola chiave della Guida per la scheda. |
TabName |
Ottiene il nome della scheda. |
Metodi
CanExtend(Object) |
Ottiene un valore che indica se è possibile estendere l'oggetto specificato. |
Dispose() |
Libera tutte le risorse utilizzate dall'oggetto PropertyTab. (Ereditato da PropertyTab) |
Dispose(Boolean) |
Rilascia le risorse non gestite usate da PropertyTab e, facoltativamente, le risorse gestite. (Ereditato da PropertyTab) |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetDefaultProperty(Object) |
Ottiene la proprietà predefinita dall'oggetto specificato. |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetProperties(ITypeDescriptorContext, Object, Attribute[]) |
Ottiene tutte le proprietà della scheda relativa all'evento che corrispondono agli attributi e al contesto specificati. |
GetProperties(Object) |
Ottiene le proprietà del componente specificato. (Ereditato da PropertyTab) |
GetProperties(Object, Attribute[]) |
Ottiene tutte le proprietà della scheda relativa all'evento che corrispondono agli attributi specificati. |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |