PowerTools PlusPak for Windows Forms 8.0J
使用方法

GcKeyLock コンポーネントは、次の3つのキーを制御するために使用します。このコンポーネントでは、これらのキーの状態(オン/オフ)を切り替えることができます。また、コントロール毎にこれらのキーを設定することも可能です。

キーの状態制御
キーの状態を取得、変更するには、CapsLockNumLockScrollLock プロパティを使用します。キーボードや、コード上からこれらのキーの状態が変更された場合は、LockKeyChangedイベントが発生します。
以下に、CapsLock、NumLock、ScrollLock の3つのキーの状態を StatusStrip に表示する例を示します。このサンプルコードは、フォームに StatusStrip コントロールと GcKeyLock コンポーネントが貼り付けられていることを前提にしています。
Imports GrapeCity.Win.Components

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    StatusStrip1.Items.Add("")
    StatusStrip1.Items.Add("")
    StatusStrip1.Items.Add("")
End Sub

Private Sub GcKeyLock1_LockKeyChanged(ByVal sender As System.Object, ByVal e As LockKeyChangedEventArgs) Handles GcKeyLock1.LockKeyChanged
    Select Case e.LockKey
        Case Keys.CapsLock
            If e.LockKeyStatus = LockKeyStatus.On Then
                StatusStrip1.Items(0).Text = "Caps"
            Else
                StatusStrip1.Items(0).Text = ""
            End If
        Case Keys.NumLock
            If e.LockKeyStatus = LockKeyStatus.On Then
                StatusStrip1.Items(1).Text = "Num"
            Else
                StatusStrip1.Items(1).Text = ""
            End If
        Case Keys.Scroll
            If e.LockKeyStatus = LockKeyStatus.On Then
                StatusStrip1.Items(2).Text = "Scroll"
            Else
                StatusStrip1.Items(2).Text = ""
            End If
    End Select
End Sub
            
using GrapeCity.Win.Components;

private void Form1_Load(object sender, EventArgs e)
{
    statusStrip1.Items.Add("");
    statusStrip1.Items.Add("");
    statusStrip1.Items.Add("");

    gcKeyLock1.LockKeyChanged += GcKeyLock1_LockKeyChanged;
}

private void GcKeyLock1_LockKeyChanged(object sender, LockKeyChangedEventArgs e)
{
    switch (e.LockKey)
    {
        case Keys.CapsLock:
            if (e.LockKeyStatus == LockKeyStatus.On) statusStrip1.Items[0].Text = "Caps";
            else statusStrip1.Items[0].Text = "";
            break;
        case Keys.NumLock:
            if (e.LockKeyStatus == LockKeyStatus.On) statusStrip1.Items[1].Text = "Num";
            else statusStrip1.Items[1].Text = "";
            break;
        case Keys.Scroll:
            if (e.LockKeyStatus == LockKeyStatus.On) statusStrip1.Items[2].Text = "Scroll";
            else statusStrip1.Items[2].Text = "";
            break;
    }
}
            
コントロールのモード設定

コントロール毎にキーの状態を切り替えることができます。状態の変更は指定したコントロールにフォーカスが移動されたときに行われます。コントロールにこの設定を行うには、次のメソッドを使用します。

メソッド 説明
SetCapsLock CapsLockキーのオン/オフを制御します。
SetNumLock NumLockキーのモードを設定します。
SetScrollLock ScrollLockキーのオン/オフを制御します。
以下に、テキストコントロール(TextBox)にフォーカスが移動されたときにCapsLockキー、NumLockキーとScrollLockキーすべてを有効にする例を示します。
Imports GrapeCity.Win.Components

GcKeyLock1.SetCapsLock(TextBox1, LockKeyMode.On)
GcKeyLock1.SetNumLock(TextBox1, LockKeyMode.On)
GcKeyLock1.SetScrollLock(TextBox1, LockKeyMode.On)
            
using GrapeCity.Win.Components;

gcKeyLock1.SetCapsLock(textBox1, LockKeyMode.On);
gcKeyLock1.SetNumLock(textBox1, LockKeyMode.On);
gcKeyLock1.SetScrollLock(textBox1, LockKeyMode.On);
            
参照