Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / WinForms / Managed / System / WinForms / Design / PropertyTab.cs / 1 / PropertyTab.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Windows.Forms.Design {
using System.Runtime.InteropServices;
using System.ComponentModel;
using System.Diagnostics;
using System;
using System.Drawing;
using System.Windows.Forms;
using Microsoft.Win32;
///
///
/// Provides a base class for property tabs.
///
[System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.InheritanceDemand, Name="FullTrust")]
public abstract class PropertyTab : IExtenderProvider {
private Object[] components;
private Bitmap bitmap;
private bool checkedBmp;
///
~PropertyTab() {
Dispose(false);
}
// don't override this. Just put a 16x16 bitmap in a file with the same name as your class in your resources.
///
///
/// Gets or sets a bitmap to display in the property tab.
///
public virtual Bitmap Bitmap {
get {
if (!checkedBmp && bitmap == null) {
string bmpName = GetType().Name + ".bmp";
try
{
bitmap = new Bitmap(GetType(), bmpName);
}
catch (Exception ex)
{
Debug.Fail("Failed to find bitmap '" + bmpName + "' for class " + GetType().FullName, ex.ToString());
}
checkedBmp = true;
}
return bitmap;
}
}
// don't override this either.
///
///
/// Gets or sets the array of components the property tab is associated with.
///
public virtual Object[] Components {
get {
return components;
}
set {
this.components = value;
}
}
// okay. Override this to give a good TabName.
///
///
/// Gets or sets the name for the property tab.
///
public abstract string TabName {
get;
}
///
///
/// Gets or sets the help keyword that is to be associated with this tab. This defaults
/// to the tab name.
///
public virtual string HelpKeyword {
get {
return TabName;
}
}
// override this to reject components you don't want to support.
///
///
/// Gets a value indicating whether the specified object be can extended.
///
public virtual bool CanExtend(Object extendee) {
return true;
}
///
///
/// [To be supplied.]
///
public virtual void Dispose() {
Dispose(true);
GC.SuppressFinalize(this);
}
///
protected virtual void Dispose(bool disposing) {
if (disposing) {
if (bitmap != null) {
bitmap.Dispose();
bitmap = null;
}
}
}
// return the default property item
///
///
/// Gets the default property of the specified component.
///
public virtual PropertyDescriptor GetDefaultProperty(Object component) {
return TypeDescriptor.GetDefaultProperty(component);
}
// okay, override this to return whatever you want to return... All properties must apply to component.
///
///
/// Gets the properties of the specified component.
///
public virtual PropertyDescriptorCollection GetProperties(Object component) {
return GetProperties(component, null);
}
///
///
/// Gets the properties of the specified component which match the specified
/// attributes.
///
public abstract PropertyDescriptorCollection GetProperties(object component, Attribute[] attributes);
///
///
/// Gets the properties of the specified component...
///
public virtual PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object component, Attribute[] attributes) {
return GetProperties(component, attributes);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Windows.Forms.Design {
using System.Runtime.InteropServices;
using System.ComponentModel;
using System.Diagnostics;
using System;
using System.Drawing;
using System.Windows.Forms;
using Microsoft.Win32;
///
///
/// Provides a base class for property tabs.
///
[System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.InheritanceDemand, Name="FullTrust")]
public abstract class PropertyTab : IExtenderProvider {
private Object[] components;
private Bitmap bitmap;
private bool checkedBmp;
///
~PropertyTab() {
Dispose(false);
}
// don't override this. Just put a 16x16 bitmap in a file with the same name as your class in your resources.
///
///
/// Gets or sets a bitmap to display in the property tab.
///
public virtual Bitmap Bitmap {
get {
if (!checkedBmp && bitmap == null) {
string bmpName = GetType().Name + ".bmp";
try
{
bitmap = new Bitmap(GetType(), bmpName);
}
catch (Exception ex)
{
Debug.Fail("Failed to find bitmap '" + bmpName + "' for class " + GetType().FullName, ex.ToString());
}
checkedBmp = true;
}
return bitmap;
}
}
// don't override this either.
///
///
/// Gets or sets the array of components the property tab is associated with.
///
public virtual Object[] Components {
get {
return components;
}
set {
this.components = value;
}
}
// okay. Override this to give a good TabName.
///
///
/// Gets or sets the name for the property tab.
///
public abstract string TabName {
get;
}
///
///
/// Gets or sets the help keyword that is to be associated with this tab. This defaults
/// to the tab name.
///
public virtual string HelpKeyword {
get {
return TabName;
}
}
// override this to reject components you don't want to support.
///
///
/// Gets a value indicating whether the specified object be can extended.
///
public virtual bool CanExtend(Object extendee) {
return true;
}
///
///
/// [To be supplied.]
///
public virtual void Dispose() {
Dispose(true);
GC.SuppressFinalize(this);
}
///
protected virtual void Dispose(bool disposing) {
if (disposing) {
if (bitmap != null) {
bitmap.Dispose();
bitmap = null;
}
}
}
// return the default property item
///
///
/// Gets the default property of the specified component.
///
public virtual PropertyDescriptor GetDefaultProperty(Object component) {
return TypeDescriptor.GetDefaultProperty(component);
}
// okay, override this to return whatever you want to return... All properties must apply to component.
///
///
/// Gets the properties of the specified component.
///
public virtual PropertyDescriptorCollection GetProperties(Object component) {
return GetProperties(component, null);
}
///
///
/// Gets the properties of the specified component which match the specified
/// attributes.
///
public abstract PropertyDescriptorCollection GetProperties(object component, Attribute[] attributes);
///
///
/// Gets the properties of the specified component...
///
public virtual PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object component, Attribute[] attributes) {
return GetProperties(component, attributes);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DiffuseMaterial.cs
- VariableAction.cs
- ApplicationContext.cs
- NotifyInputEventArgs.cs
- XmlFormatExtensionPrefixAttribute.cs
- MouseButtonEventArgs.cs
- BrushProxy.cs
- ManipulationStartingEventArgs.cs
- JournalEntryStack.cs
- HostingEnvironmentException.cs
- DataTableClearEvent.cs
- VersionValidator.cs
- SdlChannelSink.cs
- DSASignatureFormatter.cs
- StaticTextPointer.cs
- ListChangedEventArgs.cs
- Odbc32.cs
- XmlRootAttribute.cs
- QuaternionAnimation.cs
- DBNull.cs
- ListGeneralPage.cs
- SchemaImporterExtensionsSection.cs
- Material.cs
- DiscreteKeyFrames.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- CodeNamespace.cs
- UnsafeNativeMethods.cs
- EncodingTable.cs
- SqlPersonalizationProvider.cs
- ControlValuePropertyAttribute.cs
- xmlformatgeneratorstatics.cs
- KeysConverter.cs
- SchemaRegistration.cs
- AssemblyHash.cs
- MessageBox.cs
- QilCloneVisitor.cs
- Size3D.cs
- UnionExpr.cs
- PatternMatcher.cs
- StateManagedCollection.cs
- XmlTextWriter.cs
- BypassElement.cs
- DataControlField.cs
- ContractCodeDomInfo.cs
- WinInet.cs
- CompilerCollection.cs
- ControlDesignerState.cs
- Freezable.cs
- CodeTryCatchFinallyStatement.cs
- Monitor.cs
- LayoutExceptionEventArgs.cs
- AccessKeyManager.cs
- JapaneseCalendar.cs
- FormCollection.cs
- ScriptingScriptResourceHandlerSection.cs
- WindowsListViewItemStartMenu.cs
- XNodeValidator.cs
- oledbmetadatacolumnnames.cs
- AddingNewEventArgs.cs
- ManipulationStartingEventArgs.cs
- DbConnectionPoolIdentity.cs
- EastAsianLunisolarCalendar.cs
- EndpointInfoCollection.cs
- DbConnectionClosed.cs
- SqlExpander.cs
- EditBehavior.cs
- FormViewDeleteEventArgs.cs
- XmlSchemaSimpleContent.cs
- followingquery.cs
- DataBindingList.cs
- relpropertyhelper.cs
- InitializationEventAttribute.cs
- ImportCatalogPart.cs
- DBSqlParser.cs
- DesignerActionVerbItem.cs
- ProxyWebPartManager.cs
- TemplatePagerField.cs
- XamlSerializerUtil.cs
- LocalizationComments.cs
- ObjectQueryState.cs
- FontFamilyConverter.cs
- PrintPreviewDialog.cs
- TileBrush.cs
- CodeVariableReferenceExpression.cs
- StrokeCollection.cs
- GACIdentityPermission.cs
- VisualCollection.cs
- BeginCreateSecurityTokenRequest.cs
- FixedFlowMap.cs
- GridViewSelectEventArgs.cs
- Parser.cs
- DependencyProperty.cs
- HttpRequest.cs
- GacUtil.cs
- WorkflowRuntime.cs
- UnitControl.cs
- RelationshipDetailsCollection.cs
- HtmlElementEventArgs.cs
- VectorAnimationBase.cs
- SqlResolver.cs