Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / GroupBoxDesigner.cs / 1 / GroupBoxDesigner.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
*/
//#define TESTVALUEUI
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="System.Windows.Forms.Design.GroupBoxDesigner..ctor()")]
namespace System.Windows.Forms.Design {
using System.Diagnostics;
using System;
using System.Design;
using System.Windows.Forms;
using System.Drawing;
using Microsoft.Win32;
using System.ComponentModel;
using System.Drawing.Design;
using System.ComponentModel.Design;
using System.Collections;
///
///
/// This class handles all design time behavior for the group box class. Group
/// boxes may contain sub-components and therefore use the frame designer.
///
internal class GroupBoxDesigner : ParentControlDesigner {
private InheritanceUI inheritanceUI;
///
///
/// Determines the default location for a control added to this designer.
/// it is usualy (0,0), but may be modified if the container has special borders, etc.
///
protected override Point DefaultControlLocation {
get {
GroupBox gb = (GroupBox)this.Control;
return new Point(gb.DisplayRectangle.X,gb.DisplayRectangle.Y);
}
}
#if TESTVALUEUI
///
///
/// Initializes the designer with the given component. The designer can
/// get the component's site and request services from it in this call.
///
public override void Initialize(IComponent component) {
base.Initialize(component);
AutoResizeHandles = true;
IPropertyValueUIService pvUISvc = (IPropertyValueUIService)component.Site.GetService(typeof(IPropertyValueUIService));
if (pvUISvc != null) {
pvUISvc.AddPropertyValueUIHandler(new PropertyValueUIHandler(this.OnGetUIValueItem));
}
}
private void OnGetUIValueItem(object component, PropertyDescriptor propDesc, ArrayList valueUIItemList){
if (propDesc.PropertyType == typeof(string)) {
Bitmap bmp = new Bitmap(typeof(GroupBoxDesigner), "BoundProperty.bmp");
bmp.MakeTransparent();
valueUIItemList.Add(new LocalUIItem(bmp, new PropertyValueUIItemInvokeHandler(this.OnPropertyValueUIItemInvoke), "Data Can"));
//bmp = new Bitmap("BoundProperty.bmp");
valueUIItemList.Add(new LocalUIItem(bmp, new PropertyValueUIItemInvokeHandler(this.OnPropertyValueUIItemInvoke), "Little Button"));
}
}
private void OnPropertyValueUIItemInvoke(ITypeDescriptorContext context, PropertyDescriptor descriptor, PropertyValueUIItem invokedItem) {
Debug.Fail("propertyuivalue '" + invokedItem.ToolTip + "' invoked");
}
#endif
///
///
/// We override this because even though we still want to
/// offset our grid for our display rectangle, we still want
/// to align to our parent's grid - so we don't look funny
///
protected override void OnPaintAdornments(PaintEventArgs pe) {
if (DrawGrid) {
Control control = (Control)Control;
Rectangle rectangle = Control.DisplayRectangle;
rectangle.Width++; // gpr: FillRectangle with a TextureBrush comes up one pixel short
rectangle.Height++;
ControlPaint.DrawGrid(pe.Graphics, rectangle, GridSize, control.BackColor);
}
// If this control is being inherited, paint it
//
if (Inherited) {
if (inheritanceUI == null) {
inheritanceUI = (InheritanceUI)GetService(typeof(InheritanceUI));
}
if (inheritanceUI != null) {
pe.Graphics.DrawImage(inheritanceUI.InheritanceGlyph, 0, 0);
}
}
}
///
///
/// We override our base class's WndProc here because
/// the group box always returns HTTRANSPARENT. This
/// causes the mouse to go "through" the group box, but
/// that's not what we want at design time.
///
protected override void WndProc(ref Message m) {
switch (m.Msg) {
case NativeMethods.WM_NCHITTEST:
// The group box always fires HTTRANSPARENT, which
// causes the message to go to our parent. We want
// the group box's designer to get these messages, however,
// so change this.
//
base.WndProc(ref m);
if ((int)m.Result == NativeMethods.HTTRANSPARENT) {
m.Result = (IntPtr)NativeMethods.HTCLIENT;
}
break;
default:
base.WndProc(ref m);
break;
}
}
#if TESTVALUEUI
internal class LocalUIItem : PropertyValueUIItem {
private string itemName;
public LocalUIItem(Image img, PropertyValueUIItemInvokeHandler handler, string itemName) : base(img, handler, itemName) {
this.itemName = itemName;
}
}
#endif
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PageThemeCodeDomTreeGenerator.cs
- ProcessThread.cs
- HandledEventArgs.cs
- UserInitiatedNavigationPermission.cs
- Pair.cs
- PagedDataSource.cs
- MetadataItem_Static.cs
- ContextMenuStrip.cs
- ActiveXContainer.cs
- ComponentResourceManager.cs
- AccessorTable.cs
- AsyncResult.cs
- DecoderBestFitFallback.cs
- DateTimePicker.cs
- DecodeHelper.cs
- StringAttributeCollection.cs
- XPathNodeInfoAtom.cs
- MembershipSection.cs
- Point4DConverter.cs
- ImageCollectionEditor.cs
- WebPartDisplayModeEventArgs.cs
- FrameworkReadOnlyPropertyMetadata.cs
- GAC.cs
- BrowserInteropHelper.cs
- ExpressionBuilder.cs
- DataRowCollection.cs
- ColorAnimationBase.cs
- CharConverter.cs
- NetMsmqSecurity.cs
- QueryCursorEventArgs.cs
- ScriptResourceInfo.cs
- PropertyPushdownHelper.cs
- DiscreteKeyFrames.cs
- XmlILConstructAnalyzer.cs
- HtmlButton.cs
- SelectionEditingBehavior.cs
- Helpers.cs
- ApplicationManager.cs
- ProcessHostFactoryHelper.cs
- NoneExcludedImageIndexConverter.cs
- XmlSchemaExporter.cs
- ExtendedPropertyInfo.cs
- SharedDp.cs
- InvalidChannelBindingException.cs
- ZoomPercentageConverter.cs
- DateTimeOffset.cs
- NamespaceList.cs
- AnnotationResourceCollection.cs
- ThreadAttributes.cs
- embossbitmapeffect.cs
- AsymmetricKeyExchangeFormatter.cs
- XmlSchemaIdentityConstraint.cs
- WorkflowApplicationAbortedEventArgs.cs
- SoapClientMessage.cs
- CompilationLock.cs
- SqlWebEventProvider.cs
- RequestCacheValidator.cs
- StandardToolWindows.cs
- SqlDataSourceFilteringEventArgs.cs
- SmtpCommands.cs
- Icon.cs
- ChannelDispatcherCollection.cs
- WarningException.cs
- DataObjectPastingEventArgs.cs
- StackSpiller.Bindings.cs
- ParameterCollection.cs
- DataTableCollection.cs
- SHA512CryptoServiceProvider.cs
- TrustLevelCollection.cs
- ComponentConverter.cs
- FamilyMap.cs
- OperationFormatter.cs
- WebPartCollection.cs
- DesignSurfaceCollection.cs
- XmlArrayAttribute.cs
- FontFamily.cs
- WebBrowsableAttribute.cs
- MatrixUtil.cs
- HierarchicalDataBoundControlAdapter.cs
- SqlCachedBuffer.cs
- IntegerValidator.cs
- XPathNodeInfoAtom.cs
- FixedPosition.cs
- FastEncoderStatics.cs
- DummyDataSource.cs
- MonitoringDescriptionAttribute.cs
- FastEncoderStatics.cs
- FrameworkElement.cs
- FontNamesConverter.cs
- UrlParameterWriter.cs
- MachineSettingsSection.cs
- StylusCollection.cs
- TextSchema.cs
- MsmqIntegrationSecurityMode.cs
- TrackBarRenderer.cs
- XmlUrlEditor.cs
- WindowsHyperlink.cs
- CellLabel.cs
- DivideByZeroException.cs
- InstanceKeyCompleteException.cs