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
- XmlElementAttribute.cs
- wgx_sdk_version.cs
- TimelineClockCollection.cs
- AgileSafeNativeMemoryHandle.cs
- MetadataCollection.cs
- HttpException.cs
- KeySplineConverter.cs
- DataTableCollection.cs
- RegexStringValidatorAttribute.cs
- UrlMapping.cs
- XmlValueConverter.cs
- TabControlCancelEvent.cs
- ConfigXmlText.cs
- SafeNativeMethods.cs
- WindowsRegion.cs
- HtmlImageAdapter.cs
- LifetimeMonitor.cs
- VisualProxy.cs
- Point4DValueSerializer.cs
- FileUtil.cs
- CodeMemberMethod.cs
- SQLMembershipProvider.cs
- QueryStack.cs
- DocumentScope.cs
- WebPartUserCapability.cs
- HtmlFormParameterWriter.cs
- AnalyzedTree.cs
- Blend.cs
- RequiredAttributeAttribute.cs
- CheckedListBox.cs
- QilGenerator.cs
- selecteditemcollection.cs
- NativeWindow.cs
- DesignerActionItemCollection.cs
- RunInstallerAttribute.cs
- ViewLoader.cs
- XmlSchemaAppInfo.cs
- WsiProfilesElement.cs
- FrameworkTextComposition.cs
- SqlAliasesReferenced.cs
- HuffModule.cs
- ToolStripPanelCell.cs
- GradientBrush.cs
- SemanticTag.cs
- Section.cs
- AppModelKnownContentFactory.cs
- CertificateManager.cs
- ColumnHeaderConverter.cs
- XmlDataSourceView.cs
- TreeViewAutomationPeer.cs
- DbProviderFactories.cs
- TabRenderer.cs
- UIElementHelper.cs
- TypeConverterMarkupExtension.cs
- Guid.cs
- PipelineModuleStepContainer.cs
- SizeIndependentAnimationStorage.cs
- Matrix.cs
- GenerateTemporaryAssemblyTask.cs
- SecurityDescriptor.cs
- BrushValueSerializer.cs
- HierarchicalDataSourceConverter.cs
- KnownTypesProvider.cs
- PropertyChangeTracker.cs
- TrackBarDesigner.cs
- _LocalDataStore.cs
- RawMouseInputReport.cs
- BevelBitmapEffect.cs
- ErrorWebPart.cs
- DataSourceGeneratorException.cs
- BinaryFormatter.cs
- ReferencedType.cs
- AxisAngleRotation3D.cs
- WarningException.cs
- IDQuery.cs
- DataGridViewUtilities.cs
- XmlDataSourceView.cs
- PatternMatchRules.cs
- ApplicationTrust.cs
- SimpleHandlerBuildProvider.cs
- DataPagerFieldItem.cs
- Model3DGroup.cs
- PagerSettings.cs
- MethodBuilder.cs
- DebugView.cs
- UserControl.cs
- BufferAllocator.cs
- XmlAttributeHolder.cs
- PathGeometry.cs
- AuthenticationModuleElementCollection.cs
- WindowsFormsSynchronizationContext.cs
- Grid.cs
- StrokeNode.cs
- DesignerFrame.cs
- XmlDataSourceView.cs
- DataGrid.cs
- TextFormattingConverter.cs
- SingleConverter.cs
- StaticSiteMapProvider.cs
- XmlILIndex.cs