Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WebForms / System / Web / UI / Design / TextControlDesigner.cs / 1 / TextControlDesigner.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI.Design {
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Globalization;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Text;
using System.Web.UI;
///
///
///
/// This designer can be used for controls which provide a Text property that
/// is persisted as inner text. An example of such as control is the
/// System.Web.UI.WebControls.Label class. This designer ensures that the
/// Text property is set to some default value to ensure design-time visibility
/// while preserving the children collection intact. It also ensures correct
/// persistence of inner contents in both scenarios: inner text and child controls.
///
///
[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, Flags=System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)]
public class TextControlDesigner : ControlDesigner {
///
public override string GetDesignTimeHtml() {
Control control = ViewControl;
PropertyInfo textPropInfo = control.GetType().GetProperty("Text");
string originalText = (string)textPropInfo.GetValue(control, null);
bool blank = (originalText == null) || (originalText.Length == 0);
bool hasControls = control.HasControls();
Control[] children = null;
if (blank) {
if (hasControls) {
children = new Control[control.Controls.Count];
control.Controls.CopyTo(children, 0);
}
textPropInfo.SetValue(control, "[" + control.ID + "]", null);
}
string html;
try {
html = base.GetDesignTimeHtml();
}
finally {
if (blank) {
textPropInfo.SetValue(control, originalText, null);
if (hasControls) {
foreach (Control c in children) {
control.Controls.Add(c);
}
}
}
}
return html;
}
}
}
// 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
- FamilyTypefaceCollection.cs
- ZipIOExtraField.cs
- ImageButton.cs
- FlowDocumentFormatter.cs
- Function.cs
- Drawing.cs
- HttpClientProtocol.cs
- CorrelationManager.cs
- WorkflowTimerService.cs
- IIS7UserPrincipal.cs
- SqlDataSource.cs
- ObjectDisposedException.cs
- VisualBasicDesignerHelper.cs
- SizeFConverter.cs
- ExpandSegment.cs
- StringUtil.cs
- TraceHwndHost.cs
- QilVisitor.cs
- EmptyReadOnlyDictionaryInternal.cs
- Command.cs
- CheckoutException.cs
- HttpModuleActionCollection.cs
- CreateUserErrorEventArgs.cs
- ServiceInstanceProvider.cs
- InplaceBitmapMetadataWriter.cs
- ListMarkerLine.cs
- Grant.cs
- SelectionRange.cs
- TemplatedWizardStep.cs
- SQLMoney.cs
- InvalidAsynchronousStateException.cs
- DeferredSelectedIndexReference.cs
- DescendantBaseQuery.cs
- AssemblyNameProxy.cs
- KoreanLunisolarCalendar.cs
- DataContractJsonSerializer.cs
- CloseSequence.cs
- LongMinMaxAggregationOperator.cs
- UIElementCollection.cs
- ClientRolePrincipal.cs
- SqlCachedBuffer.cs
- OracleColumn.cs
- FileSecurity.cs
- ZoneButton.cs
- TrackingAnnotationCollection.cs
- HTMLTagNameToTypeMapper.cs
- ConfigurationLockCollection.cs
- DescendantBaseQuery.cs
- DataTableReaderListener.cs
- OneToOneMappingSerializer.cs
- LateBoundBitmapDecoder.cs
- BindToObject.cs
- XmlValidatingReaderImpl.cs
- Resources.Designer.cs
- TypeNameParser.cs
- RuleCache.cs
- ContentOperations.cs
- XPathEmptyIterator.cs
- PropertyChangedEventManager.cs
- DocumentXPathNavigator.cs
- PropertyChangeTracker.cs
- PropertyItemInternal.cs
- UrlRoutingHandler.cs
- DesignerRegionCollection.cs
- RotateTransform.cs
- Point3DIndependentAnimationStorage.cs
- TraceSection.cs
- sqlmetadatafactory.cs
- ControlParameter.cs
- TextCompositionEventArgs.cs
- TransformerInfo.cs
- SplayTreeNode.cs
- PaperSize.cs
- ContextMenu.cs
- IRCollection.cs
- BaseCodeDomTreeGenerator.cs
- XmlAttributes.cs
- PropertyMapper.cs
- SqlInternalConnectionTds.cs
- oledbmetadatacollectionnames.cs
- uribuilder.cs
- TextDecorationCollection.cs
- WindowsListViewItemStartMenu.cs
- ProfileSettings.cs
- SocketInformation.cs
- AutomationAttributeInfo.cs
- Single.cs
- TextFormattingConverter.cs
- CustomAttributeBuilder.cs
- WebPartVerbsEventArgs.cs
- PlatformNotSupportedException.cs
- ButtonField.cs
- HttpServerVarsCollection.cs
- ContractMapping.cs
- TcpSocketManager.cs
- Compiler.cs
- XPathArrayIterator.cs
- WsdlWriter.cs
- FolderBrowserDialog.cs
- HttpRuntime.cs