Ejemplo 1
En el ejemplo de código siguiente se muestra cómo utilizar el evento KeyDown con la clase Help para mostrar Ayuda de estilo emergente al usuario de la aplicación. En el ejemplo se utilizan las propiedades KeyEventArgs pasadas al método controlador de eventos para filtrar todas las variaciones de presionar la tecla F1 con una tecla modificadora. Cuando el usuario presiona cualquier variación de F1 que incluye cualquier modificador de teclado, la clase Help muestra una ventana emergente, similar a ToolTip, junto al control. Si el usuario presiona ALT+F2, se muestra una Ayuda emergente distinta con información adicional.
Private Sub textBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles textBox1.KeyDown
' Determine whether the key entered is the F1 key. If it is, display Help.
If e.KeyCode = Keys.F1 AndAlso (e.Alt OrElse e.Control OrElse e.Shift) Then
' Display a pop-up Help topic to assist the user.
Help.ShowPopup(textBox1, "Enter your name.", New Point(textBox1.Bottom, textBox1.Right))
ElseIf e.KeyCode = Keys.F2 AndAlso e.Modifiers = Keys.Alt Then
' Display a pop-up Help topic to provide additional assistance to the user.
Help.ShowPopup(textBox1, "Enter your first name followed by your last name. Middle name is optional.", _
New Point(textBox1.Top, Me.textBox1.Left))
End If
End Sub 'textBox1_KeyDown
private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
// Determine whether the key entered is the F1 key. If it is, display Help.
if(e.KeyCode == Keys.F1 && (e.Alt || e.Control || e.Shift))
{
// Display a pop-up Help topic to assist the user.
Help.ShowPopup(textBox1, "Enter your name.", new Point(textBox1.Bottom, textBox1.Right));
}
else if(e.KeyCode == Keys.F2 && e.Modifiers == Keys.Alt)
{
// Display a pop-up Help topic to provide additional assistance to the user.
Help.ShowPopup(textBox1, "Enter your first name followed by your last name. Middle name is optional.",
new Point(textBox1.Top, this.textBox1.Left));
}
}
// This example demonstrates how to use the KeyDown event with the Help class to display
// pop-up style help to the user of the application. The example filters for all variations
// of pressing the F1 key with a modifier key by using the KeyEventArgs properties passed
// to the event handling method.
// When the user presses any variation of F1 that includes any keyboard modifier, the Help
// class displays a pop-up window, similar to a ToolTip, near the control. If the user presses
// ALT + F2, a different Help pop-up is displayed with additional information. This example assumes
// that a tTextBox control, named textBox1, has been added to the form and its KeyDown
// event has been contected to this event handling method.
private:
void textBox1_KeyDown( Object^ /*sender*/, System::Windows::Forms::KeyEventArgs^ e )
{
// Determine whether the key entered is the F1 key. If it is, display Help.
if ( e->KeyCode == Keys::F1 && (e->Alt || e->Control || e->Shift) )
{
// Display a pop-up Help topic to assist the user.
Help::ShowPopup( textBox1, "Enter your name.", Point(textBox1->Bottom,textBox1->Right) );
}
else
if ( e->KeyCode == Keys::F2 && e->Modifiers == Keys::Alt )
{
// Display a pop-up Help topic to provide additional assistance to the user.
Help::ShowPopup( textBox1, "Enter your first name followed by your last name. Middle name is optional.",
Point(textBox1->Top,this->textBox1->Left) );
}
}
// This example demonstrates how to use the KeyDown event with the Help
// class to display pop-up style help to the user of the application.
// The example filters for all variations of pressing the F1 key with
// a modifier key by using the KeyEventArgs properties passed to the
// event handling method.When the user presses any variation of F1 that
// includes any keyboard modifier, the Help class displays a pop-up window,
// similar to a ToolTip, near the control. If the user presses ALT + F2,
// a different Help pop-up is displayed with additional information.
// This example assumes that a tTextBox control, named textBox1, has been
// added to the form and its KeyDown event has been contected to this
// event handling method.
private void textBox1_KeyDown(Object sender,
System.Windows.Forms.KeyEventArgs e)
{
// Determine whether the key entered is the F1 key.
//If it is, display Help.
if (e.get_KeyCode().Equals(Keys.F1) && (e.get_Alt() || e.get_Control()
|| e.get_Shift())) {
// Display a pop-up Help topic to assist the user.
Help.ShowPopup(textBox1, "Enter your name.", new Point(textBox1.
get_Bottom(), textBox1.get_Right()));
}
else {
if (e.get_KeyCode().Equals(Keys.F2) && e.get_Modifiers().
Equals(Keys.Alt)) {
// Display a pop-up Help topic to provide additional assistance
// to the user.
Help.ShowPopup(textBox1, "Enter your first name followed by"
+ " your last name.Middle name is optional.",new Point(
textBox1.get_Top(), this.textBox1.get_Left()));
}
}
} //textBox1_KeyDown
} //Form1
Ejemplo 2
El ejemplo siguiente determina si el usuario presionó ALT+E y, si el puntero del mouse está encima de TreeNode, permite al usuario modificar TreeNode.
Private Sub treeView1_KeyDown(sender As Object, _
e As KeyEventArgs) Handles treeView1.KeyDown
' If the 'Alt' and 'E' keys are pressed,
' allow the user to edit the TreeNode label.
If e.Alt And e.KeyCode = Keys.E Then
treeView1.LabelEdit = True
' If there is a TreeNode under the mose cursor, begin editing.
Dim editNode As TreeNode = treeView1.GetNodeAt( _
treeView1.PointToClient(Control.MousePosition))
If (editNode IsNot Nothing) Then
editNode.BeginEdit()
End If
End If
End Sub
Private Sub treeView1_AfterLabelEdit(sender As Object, _
e As NodeLabelEditEventArgs) Handles treeView1.AfterLabelEdit
' Disable the ability to edit the TreeNode labels.
treeView1.LabelEdit = False
End Sub
private void treeView1_KeyDown(object sender, KeyEventArgs e)
{
/* If the 'Alt' and 'E' keys are pressed,
* allow the user to edit the TreeNode label. */
if(e.Alt && e.KeyCode == Keys.E)
{
treeView1.LabelEdit = true;
// If there is a TreeNode under the mose cursor, begin editing.
TreeNode editNode = treeView1.GetNodeAt(
treeView1.PointToClient(Control.MousePosition));
if(editNode != null)
{
editNode.BeginEdit();
}
}
}
private void treeView1_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
{
// Disable the ability to edit the TreeNode labels.
treeView1.LabelEdit = false;
}
private:
void treeView1_KeyDown( Object^ /*sender*/, KeyEventArgs^ e )
{
/* If the 'Alt' and 'E' keys are pressed,
* allow the user to edit the TreeNode label. */
if ( e->Alt && e->KeyCode == Keys::E )
{
treeView1->LabelEdit = true;
// If there is a TreeNode under the mose cursor, begin editing.
TreeNode^ editNode = treeView1->GetNodeAt( treeView1->PointToClient( Control::MousePosition ) );
if ( editNode != nullptr )
{
editNode->BeginEdit();
}
}
}
void treeView1_AfterLabelEdit( Object^ /*sender*/, NodeLabelEditEventArgs^ /*e*/ )
{
// Disable the ability to edit the TreeNode labels.
treeView1->LabelEdit = false;
}
private void treeView1_KeyDown(Object sender, KeyEventArgs e)
{
/* If the 'Alt' and 'E' keys are pressed,
allow the user to edit the TreeNode label.
*/
if (e.get_Alt() && e.get_KeyCode() == Keys.E) {
treeView1.set_LabelEdit(true);
// If there is a TreeNode under the mose cursor, begin editing.
TreeNode editNode = treeView1.GetNodeAt(treeView1.PointToClient(
Control.get_MousePosition()));
if (editNode != null) {
editNode.BeginEdit();
}
}
} //treeView1_KeyDown
private void treeView1_AfterLabelEdit(Object sender,
NodeLabelEditEventArgs e)
{
// Disable the ability to edit the TreeNode labels.
treeView1.set_LabelEdit(false);
} //treeView1_AfterLabelEdit