Private Sub GetControls()
Dim fis As System.Reflection.FieldInfo()
fis = Me.GetType().GetFields(Reflection.BindingFlags.NonPublic Or _
Reflection.BindingFlags.Instance Or _
Reflection.BindingFlags.IgnoreCase)
For Each fi As Reflection.FieldInfo In fis
If TypeOf (fi.GetValue(Me)) Is Control Then
MessageBox.Show(fi.Name)
End Ifnd If
Next
End Sub
7.36. How do I detect the hardware directional pad buttons?
The hardware directional pad buttons can be detected through the standard key events by comparing the KeyCode from the KeyEventArgs parameter. //C#
protected override void OnKeyDown(KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Up:
MessageBox.Show("Up Key Pressed");
break;
case Keys.Down:
MessageBox.Show("Down Key Pressed");
break;
case Keys.Left:
MessageBox.Show("Left Key Pressed");
break;
case Keys.Right:
MessageBox.Show("Right Key Pressed");
break;
}
base.OnKeyDown (e);
}
'VB
Protected Overrides Sub OnKeyDown(e As KeyEventArgs)
Select Case e.KeyCode
Case Keys.Up
MessageBox.Show("Up Key Pressed")
Case Keys.Down
MessageBox.Show("Down Key Pressed")
Case Keys.Left
MessageBox.Show("Left Key Pressed")
Case Keys.Right
MessageBox.Show("Right Key Pressed")
End Select
MyBase.OnKeyDown(e)
End Sub 'OnKeyDown
7.37. How do I get a double click event when only the Click event is supported?
See the .NET Compact Framework QuickStarts, Implementing Events topic:
http://samples.gotdotnet.com/quickstart/compactframework/doc/btndclick.aspx
7.38. How do I get onenter/onleave style notifications?
See the .NET Compact Framework QuickStarts, OnEnter/OnLeave Functionality:
http://samples.gotdotnet.com/quickstart/compactframework/doc/enterleave.aspx
7.39. How do I use threading in a modal dialog that doesn't hang my app?
Create a modeless dialog that behaves like a model dialog. //C#
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Collections;
using System.ComponentModel;
public interface IModelessDialogCallback
{
void DialogResultCallback(DialogResult result);
}
public class Test : System.Windows.Forms.Form, IModelessDialogCallback
{
ModelessDialog dlg;
Button bShow;
int counter = 0;
protected override void OnLoad(EventArgs e)
{
this.Text = "Modal(less) Dialog Example";
this.bShow = new Button();
this.bShow.Parent = this;
this.bShow.Bounds = new Rectangle (10, 10, 150, 30);
this.bShow.Text = "Show Dialog";
this.bShow.Click += new EventHandler(this._Click);
this.dlg = new ModelessDialog(this);
}