Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- WindowPattern.cs
- Stroke.cs
- InstanceOwnerQueryResult.cs
- SettingsContext.cs
- ManagementObject.cs
- OutputCacheProviderCollection.cs
- CustomErrorsSection.cs
- ListViewItem.cs
- FormViewInsertedEventArgs.cs
- AnimationTimeline.cs
- EventProviderWriter.cs
- HtmlDocument.cs
- UnknownWrapper.cs
- SerializationFieldInfo.cs
- Merger.cs
- GridSplitterAutomationPeer.cs
- WSFederationHttpSecurity.cs
- DataAdapter.cs
- DataBoundControlAdapter.cs
- PathTooLongException.cs
- RelationshipEndCollection.cs
- WmlPanelAdapter.cs
- Update.cs
- MouseOverProperty.cs
- BitmapFrame.cs
- MimeXmlImporter.cs
- DialogResultConverter.cs
- TableRowCollection.cs
- BaseTemplateBuildProvider.cs
- QueueAccessMode.cs
- BamlLocalizableResourceKey.cs
- StringFormat.cs
- WebPartMovingEventArgs.cs
- DockAndAnchorLayout.cs
- ApplicationDirectoryMembershipCondition.cs
- RadioButton.cs
- ErrorLog.cs
- WriteableBitmap.cs
- StreamGeometry.cs
- QueryResponse.cs
- WebPartManager.cs
- LocalIdKeyIdentifierClause.cs
- RegexGroup.cs
- CopyNodeSetAction.cs
- XmlNodeList.cs
- ResourceExpressionBuilder.cs
- SecurityValidationBehavior.cs
- UnsafePeerToPeerMethods.cs
- ServiceOperation.cs
- path.cs
- brushes.cs
- XPathMultyIterator.cs
- TextClipboardData.cs
- PartialClassGenerationTaskInternal.cs
- UITypeEditor.cs
- EntitySet.cs
- AsymmetricSignatureDeformatter.cs
- CacheOutputQuery.cs
- DataControlFieldCell.cs
- InternalDuplexBindingElement.cs
- TypefaceMetricsCache.cs
- shaperfactoryquerycacheentry.cs
- Dispatcher.cs
- ForeignConstraint.cs
- RowsCopiedEventArgs.cs
- xmlsaver.cs
- dtdvalidator.cs
- XmlQueryTypeFactory.cs
- MarginsConverter.cs
- mediapermission.cs
- SoapSchemaImporter.cs
- ButtonFlatAdapter.cs
- MethodBuilder.cs
- HtmlMobileTextWriter.cs
- OleDbEnumerator.cs
- ObjectDataSourceSelectingEventArgs.cs
- Latin1Encoding.cs
- CodeGroup.cs
- StaticFileHandler.cs
- XPathDescendantIterator.cs
- ErrorLog.cs
- Block.cs
- MeshGeometry3D.cs
- LogicalExpr.cs
- CorrelationQueryBehavior.cs
- userdatakeys.cs
- CodeCommentStatement.cs
- BindingMemberInfo.cs
- DotNetATv1WindowsLogEntrySerializer.cs
- COM2ColorConverter.cs
- GridSplitter.cs
- XmlnsCompatibleWithAttribute.cs
- DeviceFilterEditorDialog.cs
- StorageRoot.cs
- VirtualDirectoryMappingCollection.cs
- PenThreadWorker.cs
- TextureBrush.cs
- OracleParameter.cs
- XmlParserContext.cs
- OuterGlowBitmapEffect.cs