Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / WinForms / Managed / System / WinForms / DataGridToolTip.cs / 1 / DataGridToolTip.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Windows.Forms {
using System.Runtime.Remoting;
using System.Runtime.InteropServices;
using System.Drawing;
using System.Windows.Forms;
using Microsoft.Win32;
using System.Diagnostics;
using System.ComponentModel;
// this class is basically a NativeWindow that does toolTipping
// should be one for the entire grid
internal class DataGridToolTip : MarshalByRefObject {
// the toolTip control
private NativeWindow tipWindow = null;
// the dataGrid which contains this toolTip
private DataGrid dataGrid = null;
// CONSTRUCTOR
public DataGridToolTip(DataGrid dataGrid)
{
Debug.Assert(dataGrid!= null, "can't attach a tool tip to a null grid");
this.dataGrid = dataGrid;
}
// will ensure that the toolTip window was created
public void CreateToolTipHandle()
{
if (tipWindow == null || tipWindow.Handle == IntPtr.Zero)
{
NativeMethods.INITCOMMONCONTROLSEX icc = new NativeMethods.INITCOMMONCONTROLSEX();
icc.dwICC = NativeMethods.ICC_TAB_CLASSES;
icc.dwSize = Marshal.SizeOf(icc);
SafeNativeMethods.InitCommonControlsEx(icc);
CreateParams cparams = new CreateParams();
cparams.Parent = dataGrid.Handle;
cparams.ClassName = NativeMethods.TOOLTIPS_CLASS;
cparams.Style = NativeMethods.TTS_ALWAYSTIP;
tipWindow = new NativeWindow();
tipWindow.CreateHandle(cparams);
UnsafeNativeMethods.SendMessage(new HandleRef(tipWindow, tipWindow.Handle), NativeMethods.TTM_SETMAXTIPWIDTH, 0, SystemInformation.MaxWindowTrackSize.Width);
SafeNativeMethods.SetWindowPos(new HandleRef(tipWindow, tipWindow.Handle), NativeMethods.HWND_NOTOPMOST, 0, 0, 0, 0, NativeMethods.SWP_NOSIZE | NativeMethods.SWP_NOMOVE | NativeMethods.SWP_NOACTIVATE);
UnsafeNativeMethods.SendMessage(new HandleRef(tipWindow, tipWindow.Handle), NativeMethods.TTM_SETDELAYTIME, NativeMethods.TTDT_INITIAL, 0);
}
}
// this function will add a toolTip to the
// windows system
public void AddToolTip(String toolTipString, IntPtr toolTipId, Rectangle iconBounds)
{
Debug.Assert(tipWindow != null && tipWindow.Handle != IntPtr.Zero, "the tipWindow was not initialized, bailing out");
if (toolTipString == null)
throw new ArgumentNullException("toolTipString");
if (iconBounds.IsEmpty)
throw new ArgumentNullException("iconBounds", SR.GetString(SR.DataGridToolTipEmptyIcon));
NativeMethods.TOOLINFO_T toolInfo = new NativeMethods.TOOLINFO_T();
toolInfo.cbSize = Marshal.SizeOf(toolInfo);
toolInfo.hwnd = dataGrid.Handle;
toolInfo.uId = toolTipId;
toolInfo.lpszText = toolTipString;
toolInfo.rect = NativeMethods.RECT.FromXYWH(iconBounds.X, iconBounds.Y, iconBounds.Width, iconBounds.Height);
toolInfo.uFlags = NativeMethods.TTF_SUBCLASS;
UnsafeNativeMethods.SendMessage(new HandleRef(tipWindow, tipWindow.Handle), NativeMethods.TTM_ADDTOOL, 0, toolInfo);
}
public void RemoveToolTip(IntPtr toolTipId)
{
NativeMethods.TOOLINFO_T toolInfo = new NativeMethods.TOOLINFO_T();
toolInfo.cbSize = Marshal.SizeOf(toolInfo);
toolInfo.hwnd = dataGrid.Handle;
toolInfo.uId = toolTipId;
UnsafeNativeMethods.SendMessage(new HandleRef(tipWindow, tipWindow.Handle), NativeMethods.TTM_DELTOOL, 0, toolInfo);
}
// will destroy the tipWindow
public void Destroy()
{
Debug.Assert(tipWindow != null, "how can one destroy a null window");
tipWindow.DestroyHandle();
tipWindow = null;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Windows.Forms {
using System.Runtime.Remoting;
using System.Runtime.InteropServices;
using System.Drawing;
using System.Windows.Forms;
using Microsoft.Win32;
using System.Diagnostics;
using System.ComponentModel;
// this class is basically a NativeWindow that does toolTipping
// should be one for the entire grid
internal class DataGridToolTip : MarshalByRefObject {
// the toolTip control
private NativeWindow tipWindow = null;
// the dataGrid which contains this toolTip
private DataGrid dataGrid = null;
// CONSTRUCTOR
public DataGridToolTip(DataGrid dataGrid)
{
Debug.Assert(dataGrid!= null, "can't attach a tool tip to a null grid");
this.dataGrid = dataGrid;
}
// will ensure that the toolTip window was created
public void CreateToolTipHandle()
{
if (tipWindow == null || tipWindow.Handle == IntPtr.Zero)
{
NativeMethods.INITCOMMONCONTROLSEX icc = new NativeMethods.INITCOMMONCONTROLSEX();
icc.dwICC = NativeMethods.ICC_TAB_CLASSES;
icc.dwSize = Marshal.SizeOf(icc);
SafeNativeMethods.InitCommonControlsEx(icc);
CreateParams cparams = new CreateParams();
cparams.Parent = dataGrid.Handle;
cparams.ClassName = NativeMethods.TOOLTIPS_CLASS;
cparams.Style = NativeMethods.TTS_ALWAYSTIP;
tipWindow = new NativeWindow();
tipWindow.CreateHandle(cparams);
UnsafeNativeMethods.SendMessage(new HandleRef(tipWindow, tipWindow.Handle), NativeMethods.TTM_SETMAXTIPWIDTH, 0, SystemInformation.MaxWindowTrackSize.Width);
SafeNativeMethods.SetWindowPos(new HandleRef(tipWindow, tipWindow.Handle), NativeMethods.HWND_NOTOPMOST, 0, 0, 0, 0, NativeMethods.SWP_NOSIZE | NativeMethods.SWP_NOMOVE | NativeMethods.SWP_NOACTIVATE);
UnsafeNativeMethods.SendMessage(new HandleRef(tipWindow, tipWindow.Handle), NativeMethods.TTM_SETDELAYTIME, NativeMethods.TTDT_INITIAL, 0);
}
}
// this function will add a toolTip to the
// windows system
public void AddToolTip(String toolTipString, IntPtr toolTipId, Rectangle iconBounds)
{
Debug.Assert(tipWindow != null && tipWindow.Handle != IntPtr.Zero, "the tipWindow was not initialized, bailing out");
if (toolTipString == null)
throw new ArgumentNullException("toolTipString");
if (iconBounds.IsEmpty)
throw new ArgumentNullException("iconBounds", SR.GetString(SR.DataGridToolTipEmptyIcon));
NativeMethods.TOOLINFO_T toolInfo = new NativeMethods.TOOLINFO_T();
toolInfo.cbSize = Marshal.SizeOf(toolInfo);
toolInfo.hwnd = dataGrid.Handle;
toolInfo.uId = toolTipId;
toolInfo.lpszText = toolTipString;
toolInfo.rect = NativeMethods.RECT.FromXYWH(iconBounds.X, iconBounds.Y, iconBounds.Width, iconBounds.Height);
toolInfo.uFlags = NativeMethods.TTF_SUBCLASS;
UnsafeNativeMethods.SendMessage(new HandleRef(tipWindow, tipWindow.Handle), NativeMethods.TTM_ADDTOOL, 0, toolInfo);
}
public void RemoveToolTip(IntPtr toolTipId)
{
NativeMethods.TOOLINFO_T toolInfo = new NativeMethods.TOOLINFO_T();
toolInfo.cbSize = Marshal.SizeOf(toolInfo);
toolInfo.hwnd = dataGrid.Handle;
toolInfo.uId = toolTipId;
UnsafeNativeMethods.SendMessage(new HandleRef(tipWindow, tipWindow.Handle), NativeMethods.TTM_DELTOOL, 0, toolInfo);
}
// will destroy the tipWindow
public void Destroy()
{
Debug.Assert(tipWindow != null, "how can one destroy a null window");
tipWindow.DestroyHandle();
tipWindow = null;
}
}
}
// 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
- SqlDataAdapter.cs
- HtmlInputPassword.cs
- DecoratedNameAttribute.cs
- VoiceInfo.cs
- DataFormats.cs
- WebEvents.cs
- ErrorTolerantObjectWriter.cs
- EditorBrowsableAttribute.cs
- SmiEventSink_DeferedProcessing.cs
- AssociationType.cs
- RoutingChannelExtension.cs
- AdPostCacheSubstitution.cs
- DataStreams.cs
- EventSinkHelperWriter.cs
- PackagePart.cs
- Ops.cs
- SystemIcons.cs
- TrackingProvider.cs
- DetailsViewPagerRow.cs
- TransactionManager.cs
- ResolveCriteria.cs
- SqlFunctionAttribute.cs
- StorageConditionPropertyMapping.cs
- ToolStripPanel.cs
- FontInfo.cs
- PriorityBindingExpression.cs
- DispatcherSynchronizationContext.cs
- RectAnimationUsingKeyFrames.cs
- ApplicationTrust.cs
- ReadWriteObjectLock.cs
- TextTreeUndo.cs
- OperationDescriptionCollection.cs
- Facet.cs
- TouchesCapturedWithinProperty.cs
- linebase.cs
- FastEncoderWindow.cs
- DefaultAsyncDataDispatcher.cs
- StandardToolWindows.cs
- JavaScriptString.cs
- Roles.cs
- DBCSCodePageEncoding.cs
- ListViewGroup.cs
- DrawListViewSubItemEventArgs.cs
- ActiveXMessageFormatter.cs
- ProfileSettingsCollection.cs
- SqlDataReaderSmi.cs
- StrokeNodeEnumerator.cs
- RegexNode.cs
- XmlAttribute.cs
- CacheChildrenQuery.cs
- MetadataArtifactLoader.cs
- DataTableNewRowEvent.cs
- ProxyHelper.cs
- RelativeSource.cs
- Parameter.cs
- SchemaImporterExtensionsSection.cs
- hresults.cs
- FtpCachePolicyElement.cs
- UnlockCardRequest.cs
- QuaternionConverter.cs
- ModelTreeEnumerator.cs
- CharUnicodeInfo.cs
- RadioButton.cs
- EdmEntityTypeAttribute.cs
- BitStack.cs
- SpellerError.cs
- DataSourceHelper.cs
- TextEditorTables.cs
- EntityContainerAssociationSetEnd.cs
- OwnerDrawPropertyBag.cs
- DesignerGeometryHelper.cs
- MembershipSection.cs
- ChangeProcessor.cs
- AssemblyCache.cs
- RegexParser.cs
- CodeDomDesignerLoader.cs
- ListBase.cs
- NameSpaceExtractor.cs
- MenuItemStyleCollection.cs
- ZipFileInfo.cs
- ListenerHandler.cs
- SizeF.cs
- CodeArrayIndexerExpression.cs
- SqlInternalConnectionSmi.cs
- XPathDocument.cs
- MetabaseReader.cs
- RelationshipNavigation.cs
- SqlDependency.cs
- DataTrigger.cs
- NamespaceCollection.cs
- mediapermission.cs
- EntityContainerEntitySet.cs
- TimeoutException.cs
- Collection.cs
- TableProviderWrapper.cs
- IncrementalCompileAnalyzer.cs
- ConfigurationLocation.cs
- ContextMenuService.cs
- PropertyGeneratedEventArgs.cs
- CodeConstructor.cs