作成日: 2017/08/25 最終更新日: 2017/08/25
文書種別
制限事項
詳細
ラッパー数値コントロールでは、既定ではマイナスキーが値のプラスとマイナスを切り替えるスイッチとして使用されます。
4.0Jの数値コントロールではこの動作を標準的なキー操作によって実現しておりましたが、ラッパー数値コントロールではコントロールの内部でショートカットコンポーネントを使用して同様の動作を実現しています。InputManの仕様ではショートカットキーを設定したキーではKeyDownイベントが発生しないため、この動作は仕様による動作です。
なお、ラッパー数値コントロールのShortcutsプロパティからこのショートカットキーに関する動作を削除することはできません。
4.0Jの数値コントロールではこの動作を標準的なキー操作によって実現しておりましたが、ラッパー数値コントロールではコントロールの内部でショートカットコンポーネントを使用して同様の動作を実現しています。InputManの仕様ではショートカットキーを設定したキーではKeyDownイベントが発生しないため、この動作は仕様による動作です。
なお、ラッパー数値コントロールのShortcutsプロパティからこのショートカットキーに関する動作を削除することはできません。
回避方法
下記サンプルコードのようにマイナスキーのショートカット機能を削除することで、本現象を回避することが可能です。
[注意]
削除後にマイナスキーを繰り返し押下した時、値のプラスとマイナスの切り替えは無効になります。
[Visual Basic]
Dim pi As System.Reflection.PropertyInfo = GetType(GrapeCity.Win.Input.Interop.ControlBase).GetProperty("GCSHORTCUT", (System.Reflection.BindingFlags.NonPublic Or System.Reflection.BindingFlags.Static Or Reflection.BindingFlags.Instance))
If (Not pi Is Nothing) Then
Dim instance As GrapeCity.Win.Editors.GcShortcut = TryCast(pi.GetValue(Me.Number1, Nothing), GrapeCity.Win.Editors.GcShortcut)
If (Not instance Is Nothing) Then
instance.GetShortcuts(Me.Number1.InnerEditor).Remove(Keys.OemMinus)
instance.GetShortcuts(Me.Number1.InnerEditor).Remove(Keys.Subtract)
End If
End If
[C#]
System.Reflection.PropertyInfo pi = typeof(GrapeCity.Win.Input.Interop.ControlBase).GetProperty("GCSHORTCUT", (System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static | Reflection.BindingFlags.Instance));
if (((pi != null)))
{
    GrapeCity.Win.Editors.GcShortcut instance = pi.GetValue(this.Number1, null) as GrapeCity.Win.Editors.GcShortcut;
    if (((instance != null)))
    {
        instance.GetShortcuts(this.Number1.InnerEditor).Remove(Keys.OemMinus);
        instance.GetShortcuts(this.Number1.InnerEditor).Remove(Keys.Subtract);
    }
}
[注意]
削除後にマイナスキーを繰り返し押下した時、値のプラスとマイナスの切り替えは無効になります。
[Visual Basic]
Dim pi As System.Reflection.PropertyInfo = GetType(GrapeCity.Win.Input.Interop.ControlBase).GetProperty("GCSHORTCUT", (System.Reflection.BindingFlags.NonPublic Or System.Reflection.BindingFlags.Static Or Reflection.BindingFlags.Instance))
If (Not pi Is Nothing) Then
Dim instance As GrapeCity.Win.Editors.GcShortcut = TryCast(pi.GetValue(Me.Number1, Nothing), GrapeCity.Win.Editors.GcShortcut)
If (Not instance Is Nothing) Then
instance.GetShortcuts(Me.Number1.InnerEditor).Remove(Keys.OemMinus)
instance.GetShortcuts(Me.Number1.InnerEditor).Remove(Keys.Subtract)
End If
End If
[C#]
System.Reflection.PropertyInfo pi = typeof(GrapeCity.Win.Input.Interop.ControlBase).GetProperty("GCSHORTCUT", (System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static | Reflection.BindingFlags.Instance));
if (((pi != null)))
{
    GrapeCity.Win.Editors.GcShortcut instance = pi.GetValue(this.Number1, null) as GrapeCity.Win.Editors.GcShortcut;
    if (((instance != null)))
    {
        instance.GetShortcuts(this.Number1.InnerEditor).Remove(Keys.OemMinus);
        instance.GetShortcuts(this.Number1.InnerEditor).Remove(Keys.Subtract);
    }
}
旧文書番号
41013