Code:
/ FX-1434 / FX-1434 / 1.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
- InstanceCreationEditor.cs
- Drawing.cs
- RepeatBehaviorConverter.cs
- BindingOperations.cs
- ScrollEvent.cs
- RelativeSource.cs
- DataGridColumnReorderingEventArgs.cs
- ComPlusServiceLoader.cs
- HierarchicalDataSourceControl.cs
- LinkLabelLinkClickedEvent.cs
- HMAC.cs
- MobileControlsSection.cs
- FragmentNavigationEventArgs.cs
- TextDecorationCollection.cs
- WorkItem.cs
- CancelEventArgs.cs
- FastEncoderWindow.cs
- DataGridViewCellStyleChangedEventArgs.cs
- UTF7Encoding.cs
- UnsupportedPolicyOptionsException.cs
- SerializationException.cs
- SecureStringHasher.cs
- FocusTracker.cs
- PackagingUtilities.cs
- Bezier.cs
- DesignerOptions.cs
- DesignerActionUI.cs
- ExcCanonicalXml.cs
- LocalizedNameDescriptionPair.cs
- Int64Storage.cs
- DrawTreeNodeEventArgs.cs
- ProtocolsConfigurationEntry.cs
- SqlCacheDependencyDatabaseCollection.cs
- AccessibleObject.cs
- XmlFormatExtensionAttribute.cs
- FixedSOMPage.cs
- PersonalizationAdministration.cs
- RegexCaptureCollection.cs
- XmlQualifiedName.cs
- CodeTypeParameter.cs
- CompositionAdorner.cs
- ComPlusInstanceContextInitializer.cs
- DocumentViewerHelper.cs
- XmlSchemaImport.cs
- TreeViewAutomationPeer.cs
- HttpContextWrapper.cs
- CompositeFontInfo.cs
- PrivateFontCollection.cs
- ProfileProvider.cs
- SemanticResolver.cs
- Application.cs
- ProcessManager.cs
- RoleManagerSection.cs
- FlowDocumentView.cs
- OrderPreservingPipeliningMergeHelper.cs
- ScrollProperties.cs
- ConfigXmlAttribute.cs
- TabRenderer.cs
- NavigatorInvalidBodyAccessException.cs
- ModelUIElement3D.cs
- IdentityHolder.cs
- DataGridState.cs
- ComponentResourceKeyConverter.cs
- Timer.cs
- AttachedAnnotationChangedEventArgs.cs
- DelegateHelpers.cs
- PngBitmapDecoder.cs
- WebPartAddingEventArgs.cs
- PolyLineSegment.cs
- SAPICategories.cs
- TagPrefixCollection.cs
- EncryptedData.cs
- PartitionResolver.cs
- ButtonColumn.cs
- EdmScalarPropertyAttribute.cs
- KnownTypes.cs
- RichTextBox.cs
- DataGridViewCellLinkedList.cs
- ManagementOperationWatcher.cs
- Misc.cs
- CheckoutException.cs
- AmbientLight.cs
- CorruptingExceptionCommon.cs
- MsmqBindingElementBase.cs
- CodeDomSerializerException.cs
- PhysicalOps.cs
- WebSysDescriptionAttribute.cs
- FormsAuthenticationConfiguration.cs
- XmlUtil.cs
- ListViewUpdatedEventArgs.cs
- contentDescriptor.cs
- Renderer.cs
- EntityCommandCompilationException.cs
- HashSetEqualityComparer.cs
- TreeNodeClickEventArgs.cs
- CodeTypeDeclarationCollection.cs
- CryptoProvider.cs
- Evidence.cs
- NameSpaceExtractor.cs
- DeviceSpecificChoice.cs