Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / DrawItemEvent.cs / 1305376 / DrawItemEvent.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Windows.Forms {
using System.Diagnostics;
using System;
using System.ComponentModel;
using System.Drawing;
using Microsoft.Win32;
///
///
/// This event is fired by owner draw Controls, such as ListBoxes and
/// ComboBoxes. It contains all the information needed for the user to
/// paint the given item, including the item index, the Rectangle in which
/// the drawing should be done, and the Graphics object with which the drawing
/// should be done.
///
public class DrawItemEventArgs : EventArgs {
///
///
/// The backColor to paint each menu item with.
///
private Color backColor;
///
///
/// The foreColor to paint each menu item with.
///
private Color foreColor;
///
///
/// The font used to draw the item's string.
///
private Font font;
///
///
/// The graphics object with which the drawing should be done.
///
private readonly System.Drawing.Graphics graphics;
///
///
/// The index of the item that should be painted.
///
private readonly int index;
///
///
/// The rectangle outlining the area in which the painting should be
/// done.
///
private readonly Rectangle rect;
///
///
/// Miscellaneous state information, such as whether the item is
/// "selected", "focused", or some other such information. ComboBoxes
/// have one special piece of information which indicates if the item
/// being painted is the editable portion of the ComboBox.
///
private readonly DrawItemState state;
///
///
/// Creates a new DrawItemEventArgs with the given parameters.
///
public DrawItemEventArgs(Graphics graphics, Font font, Rectangle rect,
int index, DrawItemState state) {
this.graphics = graphics;
this.font = font;
this.rect = rect;
this.index = index;
this.state = state;
this.foreColor = SystemColors.WindowText;
this.backColor = SystemColors.Window;
}
///
///
/// Creates a new DrawItemEventArgs with the given parameters, including the foreColor and backColor of the control.
///
public DrawItemEventArgs(Graphics graphics, Font font, Rectangle rect,
int index, DrawItemState state, Color foreColor, Color backColor) {
this.graphics = graphics;
this.font = font;
this.rect = rect;
this.index = index;
this.state = state;
this.foreColor = foreColor;
this.backColor = backColor;
}
///
public Color BackColor {
get {
if ((state & DrawItemState.Selected) == DrawItemState.Selected) {
return SystemColors.Highlight;
}
return backColor;
}
}
///
///
/// The rectangle outlining the area in which the painting should be
/// done.
///
public Rectangle Bounds {
get {
return rect;
}
}
///
///
/// A suggested font, usually the parent control's Font property.
///
public Font Font {
get {
return font;
}
}
///
///
/// A suggested color drawing: either SystemColors.WindowText or SystemColors.HighlightText,
/// depending on whether this item is selected.
///
public Color ForeColor {
get {
if ((state & DrawItemState.Selected) == DrawItemState.Selected) {
return SystemColors.HighlightText;
}
return foreColor;
}
}
///
///
/// Graphics object with which painting should be done.
///
public Graphics Graphics {
get {
return graphics;
}
}
///
///
/// The index of the item that should be painted.
///
public int Index {
get {
return index;
}
}
///
///
/// Miscellaneous state information, such as whether the item is
/// "selected", "focused", or some other such information. ComboBoxes
/// have one special piece of information which indicates if the item
/// being painted is the editable portion of the ComboBox.
///
public DrawItemState State {
get {
return state;
}
}
///
///
/// Draws the background of the given rectangle with the color returned from the BackColor property.
///
public virtual void DrawBackground() {
Brush backBrush = new SolidBrush(BackColor);
Graphics.FillRectangle(backBrush, rect);
backBrush.Dispose();
}
///
///
/// Draws a handy focus rect in the given rectangle.
///
public virtual void DrawFocusRectangle() {
if ((state & DrawItemState.Focus) == DrawItemState.Focus
&& (state & DrawItemState.NoFocusRect) != DrawItemState.NoFocusRect)
ControlPaint.DrawFocusRectangle(Graphics, rect, ForeColor, BackColor);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Windows.Forms {
using System.Diagnostics;
using System;
using System.ComponentModel;
using System.Drawing;
using Microsoft.Win32;
///
///
/// This event is fired by owner draw Controls, such as ListBoxes and
/// ComboBoxes. It contains all the information needed for the user to
/// paint the given item, including the item index, the Rectangle in which
/// the drawing should be done, and the Graphics object with which the drawing
/// should be done.
///
public class DrawItemEventArgs : EventArgs {
///
///
/// The backColor to paint each menu item with.
///
private Color backColor;
///
///
/// The foreColor to paint each menu item with.
///
private Color foreColor;
///
///
/// The font used to draw the item's string.
///
private Font font;
///
///
/// The graphics object with which the drawing should be done.
///
private readonly System.Drawing.Graphics graphics;
///
///
/// The index of the item that should be painted.
///
private readonly int index;
///
///
/// The rectangle outlining the area in which the painting should be
/// done.
///
private readonly Rectangle rect;
///
///
/// Miscellaneous state information, such as whether the item is
/// "selected", "focused", or some other such information. ComboBoxes
/// have one special piece of information which indicates if the item
/// being painted is the editable portion of the ComboBox.
///
private readonly DrawItemState state;
///
///
/// Creates a new DrawItemEventArgs with the given parameters.
///
public DrawItemEventArgs(Graphics graphics, Font font, Rectangle rect,
int index, DrawItemState state) {
this.graphics = graphics;
this.font = font;
this.rect = rect;
this.index = index;
this.state = state;
this.foreColor = SystemColors.WindowText;
this.backColor = SystemColors.Window;
}
///
///
/// Creates a new DrawItemEventArgs with the given parameters, including the foreColor and backColor of the control.
///
public DrawItemEventArgs(Graphics graphics, Font font, Rectangle rect,
int index, DrawItemState state, Color foreColor, Color backColor) {
this.graphics = graphics;
this.font = font;
this.rect = rect;
this.index = index;
this.state = state;
this.foreColor = foreColor;
this.backColor = backColor;
}
///
public Color BackColor {
get {
if ((state & DrawItemState.Selected) == DrawItemState.Selected) {
return SystemColors.Highlight;
}
return backColor;
}
}
///
///
/// The rectangle outlining the area in which the painting should be
/// done.
///
public Rectangle Bounds {
get {
return rect;
}
}
///
///
/// A suggested font, usually the parent control's Font property.
///
public Font Font {
get {
return font;
}
}
///
///
/// A suggested color drawing: either SystemColors.WindowText or SystemColors.HighlightText,
/// depending on whether this item is selected.
///
public Color ForeColor {
get {
if ((state & DrawItemState.Selected) == DrawItemState.Selected) {
return SystemColors.HighlightText;
}
return foreColor;
}
}
///
///
/// Graphics object with which painting should be done.
///
public Graphics Graphics {
get {
return graphics;
}
}
///
///
/// The index of the item that should be painted.
///
public int Index {
get {
return index;
}
}
///
///
/// Miscellaneous state information, such as whether the item is
/// "selected", "focused", or some other such information. ComboBoxes
/// have one special piece of information which indicates if the item
/// being painted is the editable portion of the ComboBox.
///
public DrawItemState State {
get {
return state;
}
}
///
///
/// Draws the background of the given rectangle with the color returned from the BackColor property.
///
public virtual void DrawBackground() {
Brush backBrush = new SolidBrush(BackColor);
Graphics.FillRectangle(backBrush, rect);
backBrush.Dispose();
}
///
///
/// Draws a handy focus rect in the given rectangle.
///
public virtual void DrawFocusRectangle() {
if ((state & DrawItemState.Focus) == DrawItemState.Focus
&& (state & DrawItemState.NoFocusRect) != DrawItemState.NoFocusRect)
ControlPaint.DrawFocusRectangle(Graphics, rect, ForeColor, BackColor);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WebPartConnectionsConnectVerb.cs
- FilterableAttribute.cs
- WindowsNonControl.cs
- ControlPropertyNameConverter.cs
- Object.cs
- sqlcontext.cs
- DBConnectionString.cs
- NetSectionGroup.cs
- SkipQueryOptionExpression.cs
- BitmapEffectInputData.cs
- TableProviderWrapper.cs
- RuleInfoComparer.cs
- ColorConvertedBitmap.cs
- TextTreeObjectNode.cs
- TrustSection.cs
- RangeBaseAutomationPeer.cs
- XslTransform.cs
- DataControlButton.cs
- Label.cs
- CurrentChangedEventManager.cs
- BinaryVersion.cs
- CodeTypeReferenceCollection.cs
- Switch.cs
- DirectionalLight.cs
- FunctionDescription.cs
- xsdvalidator.cs
- Int32Collection.cs
- WindowsIPAddress.cs
- DataGridViewColumnHeaderCell.cs
- Span.cs
- MaterialGroup.cs
- HtmlElementEventArgs.cs
- SmiEventSink.cs
- DigestTraceRecordHelper.cs
- XmlStreamStore.cs
- LogSwitch.cs
- PersistenceProviderBehavior.cs
- CriticalExceptions.cs
- Brush.cs
- ValidationEventArgs.cs
- shaper.cs
- ObjectAssociationEndMapping.cs
- WMIGenerator.cs
- AutoGeneratedField.cs
- Model3DCollection.cs
- ManipulationLogic.cs
- SettingsPropertyWrongTypeException.cs
- ScalarRestriction.cs
- ListControl.cs
- WindowsStatic.cs
- StrongNameIdentityPermission.cs
- CollectionBuilder.cs
- MethodImplAttribute.cs
- RenderData.cs
- TraceContextEventArgs.cs
- LogArchiveSnapshot.cs
- PropertyInformation.cs
- Vector3DIndependentAnimationStorage.cs
- OverflowException.cs
- Compiler.cs
- SocketException.cs
- CodeTypeMemberCollection.cs
- SecurityException.cs
- ButtonBaseDesigner.cs
- ThaiBuddhistCalendar.cs
- PageFunction.cs
- QueryServiceConfigHandle.cs
- OutputScopeManager.cs
- httpserverutility.cs
- EntitySetBaseCollection.cs
- XsltQilFactory.cs
- _PooledStream.cs
- LinqDataSourceValidationException.cs
- SpeechEvent.cs
- ScriptComponentDescriptor.cs
- ellipse.cs
- GroupPartitionExpr.cs
- PriorityBinding.cs
- AnyReturnReader.cs
- GeometryHitTestResult.cs
- Vector3DAnimation.cs
- ScriptBehaviorDescriptor.cs
- ObjectQueryProvider.cs
- EditorZone.cs
- EditorBrowsableAttribute.cs
- FixedSOMTable.cs
- LineGeometry.cs
- SeparatorAutomationPeer.cs
- IPPacketInformation.cs
- WCFBuildProvider.cs
- PageContent.cs
- HttpPostServerProtocol.cs
- XmlDataImplementation.cs
- MenuItemBinding.cs
- StringUtil.cs
- BigInt.cs
- Hex.cs
- ValueProviderWrapper.cs
- WorkflowElementDialog.cs
- DocComment.cs