Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / StatusCommandUI.cs / 1 / StatusCommandUI.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* */ namespace System.Windows.Forms.Design { using System.Design; using System.Runtime.InteropServices; using System.ComponentModel; using System.Diagnostics; using System; using System.Collections; using Microsoft.Win32; using System.ComponentModel.Design; using System.Drawing; using System.Windows.Forms; using System.Windows.Forms.ComponentModel; using System.Windows.Forms.Design; using System.Windows.Forms.Design.Behavior; ////// /// This class provides a single entrypoint used by the Behaviors, KeySize and KeyMoves (in CommandSets) and SelectionService to update /// the StatusBar Information. /// internal class StatusCommandUI { MenuCommand statusRectCommand = null; IMenuCommandService menuService = null; IServiceProvider serviceProvider; public StatusCommandUI(IServiceProvider provider) { this.serviceProvider = provider; } ////// /// Retrieves the menu editor service, which we cache for speed. /// private IMenuCommandService MenuService { get { if (menuService == null) { menuService = (IMenuCommandService)serviceProvider.GetService(typeof(IMenuCommandService)); } return menuService; } } ////// /// Retrieves the actual StatusRectCommand, which we cache for speed. /// private MenuCommand StatusRectCommand { get { if (statusRectCommand == null) { if (MenuService != null) { statusRectCommand = MenuService.FindCommand(MenuCommands.SetStatusRectangle); } } return statusRectCommand; } } ////// /// Actual Function which invokes the command. /// public void SetStatusInformation(Component selectedComponent, Point location) { if (selectedComponent == null) { return; } Rectangle bounds = Rectangle.Empty; Control c = selectedComponent as Control; if (c != null) { bounds = c.Bounds; } else{ PropertyDescriptor BoundsProp = TypeDescriptor.GetProperties(selectedComponent)["Bounds"]; if (BoundsProp != null && typeof(Rectangle).IsAssignableFrom(BoundsProp.PropertyType)) { bounds = (Rectangle)BoundsProp.GetValue(selectedComponent); } } if (location != Point.Empty) { bounds.X = location.X; bounds.Y = location.Y; } if (StatusRectCommand != null) { StatusRectCommand.Invoke(bounds); } } ////// /// Actual Function which invokes the command. /// public void SetStatusInformation(Component selectedComponent) { if (selectedComponent == null) { return; } Rectangle bounds = Rectangle.Empty; Control c = selectedComponent as Control; if (c != null) { bounds = c.Bounds; } else{ PropertyDescriptor BoundsProp = TypeDescriptor.GetProperties(selectedComponent)["Bounds"]; if (BoundsProp != null && typeof(Rectangle).IsAssignableFrom(BoundsProp.PropertyType)) { bounds = (Rectangle)BoundsProp.GetValue(selectedComponent); } } if (StatusRectCommand != null) { StatusRectCommand.Invoke(bounds); } } ////// /// Actual Function which invokes the command. /// public void SetStatusInformation(Rectangle bounds) { if (StatusRectCommand != null) { StatusRectCommand.Invoke(bounds); } } } } // 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
- ListItem.cs
- sqlpipe.cs
- SqlParameter.cs
- Visual3D.cs
- mediaeventshelper.cs
- CredentialCache.cs
- JsonEnumDataContract.cs
- RouteParser.cs
- Executor.cs
- CookieProtection.cs
- UidManager.cs
- AtlasWeb.Designer.cs
- TemplateContent.cs
- TypeBinaryExpression.cs
- X509AsymmetricSecurityKey.cs
- NonBatchDirectoryCompiler.cs
- SystemPens.cs
- DeflateStream.cs
- ObjectDataProvider.cs
- TrustSection.cs
- Vector3DValueSerializer.cs
- externdll.cs
- XmlSchemaValidationException.cs
- RegexCompiler.cs
- InputBindingCollection.cs
- EntityProviderFactory.cs
- EntityDataSourceContainerNameConverter.cs
- ErrorWebPart.cs
- DebugView.cs
- XmlDictionary.cs
- OletxResourceManager.cs
- AppDomainManager.cs
- PingOptions.cs
- AssemblyCollection.cs
- SqlTypeSystemProvider.cs
- ContainsRowNumberChecker.cs
- ToggleProviderWrapper.cs
- KeyPressEvent.cs
- HttpCookie.cs
- SessionStateContainer.cs
- ManagedWndProcTracker.cs
- ValueType.cs
- StringValidator.cs
- XmlSchemaDocumentation.cs
- MessageQueueTransaction.cs
- PartialCachingControl.cs
- RoutedEventValueSerializer.cs
- TextSelectionHelper.cs
- ServicePointManagerElement.cs
- QilReference.cs
- XmlWrappingWriter.cs
- ItemDragEvent.cs
- NavigationPropertyEmitter.cs
- PageBuildProvider.cs
- RegexBoyerMoore.cs
- WindowsRichEditRange.cs
- Resources.Designer.cs
- MessageSmuggler.cs
- XsltFunctions.cs
- CompilerGlobalScopeAttribute.cs
- TextServicesPropertyRanges.cs
- HtmlFormWrapper.cs
- ToggleButton.cs
- SimpleLine.cs
- ClientTargetSection.cs
- Table.cs
- WorkflowApplicationUnloadedException.cs
- WindowsRichEditRange.cs
- ExpressionBindingCollection.cs
- UrlPropertyAttribute.cs
- Emitter.cs
- FileUpload.cs
- SchemaImporterExtensionElementCollection.cs
- ExpressionDumper.cs
- DataBindingCollection.cs
- UITypeEditors.cs
- WebBrowserNavigatingEventHandler.cs
- InputLangChangeEvent.cs
- ToolStripContentPanelDesigner.cs
- TextModifier.cs
- sortedlist.cs
- TextSearch.cs
- XmlWriterSettings.cs
- BCLDebug.cs
- FlowPanelDesigner.cs
- SrgsNameValueTag.cs
- AccessViolationException.cs
- AnchorEditor.cs
- TcpConnectionPoolSettingsElement.cs
- DataReaderContainer.cs
- ColumnResizeAdorner.cs
- SqlMethods.cs
- SimpleApplicationHost.cs
- PackagePartCollection.cs
- FormViewUpdatedEventArgs.cs
- PagedDataSource.cs
- EventToken.cs
- BitmapEffectDrawingContent.cs
- ProtocolsConfigurationHandler.cs
- XmlDataProvider.cs