ArcObjects Library Reference (Controls)  

IPageLayoutControl2.CurrentTool Property

Current active tool for the PageLayoutControl. Set to nothing to clear the tool.

ERROR: Syntax information about IPageLayoutControl2.CurrentTool may not be in D:\ArcGIS\DotNet\ESRI.ArcGIS.Controls.dll

[C++]
HRESULT get_CurrentTool(
  ITool** pTool
);
[C++]
HRESULT putref_CurrentTool(
  ITool* pTool
);
[C++]

Parameters

pTool [out, retval]

  pTool is a parameter of type ITool

pTool [in]

  pTool is a parameter of type ITool

Product Availability

Available with ArcGIS Engine.

Description

The CurrentTool is the tool used to interact will the PageLayoutControl's display. Always check if a tool is enabled before setting it to the CurrentTool property, otherwise a user will be able to use a tool that is actually disabled.

Errors Returned

1004 800a03ec: Current tool will not deactivate

Remarks

When the CurrentTool is set the following events occur:

  1. The ITool::Deactivate event is triggered on the 'old' CurrentTool if one was set. If this event returns false a trappable error ocurrs. If this event returns true the 'old' CurrentTool is removed and replaced.
  2. The ICommand::OnClick event is triggered on the 'new' CurrentTool and its cursor is picked up.

Within an ITool implementation it is recommended that the ITool::Deactivate event returns true. This allows a 'new' CurrentTool to be set, and allows the release of the CurrentTool when an application is shutting down.

[C#]
ICommand command = new ControlsPagePanToolClass);
command.OnCreate(axPageLayoutControl1.Object);
if (command.Enabled ==  true)
{ 
  axPageLayoutControl1.CurrentTool = (ITool) command;
}
[Visual Basic .NET]
Dim pCommand As ICommand
pCommand = New ControlsPagePanToolClass
pCommand.OnCreate(AxPageLayoutControl1.Object)
If pCommand.Enabled = True Then
  AxPageLayoutControl1.CurrentTool = pCommand
End If

See Also

IPageLayoutControl2 Interface

.NET Samples

Synchronized MapControl and PageLayoutControl application (Code Files: ControlsSynchronizer)