예제 #1
0
        /// <summary>
        /// このインスタンスの値を <see cref="string"/> に変換する
        /// </summary>
        /// <returns>このインスタンスと同じ値の文字列</returns>
        public new string ToString()
        {
            // 文字列に変換し返却
            StringBuilder convertValue = new StringBuilder();

            // Shiftキー
            if (Shift)
            {
                convertValue.Append(nameof(Shift)).Append("|");
            }

            // Ctrlキー
            if (Ctrl)
            {
                convertValue.Append(nameof(Ctrl)).Append("|");
            }

            // Altキー
            if (Alt)
            {
                convertValue.Append(nameof(Alt)).Append("|");
            }

            // Windowsロゴキー
            if (Win)
            {
                convertValue.Append(nameof(Win)).Append("|");
            }

            // キーコード
            string keyCode = ((int)KeyCode).ToString("X2", CultureInfo.InvariantCulture);

            convertValue.Append("0x").Append(keyCode);
            convertValue.Append(":").Append(KeyNameMapping.GetName(KeyCode));

            // 押しっぱなしにするかのフラグ
            // (押しっぱなしにの場合のみ付与する)
            if (IsKeepPressing)
            {
                convertValue.Append("|");
                convertValue.Append(KeepPressingText);
            }

            // 生成した文字列を返却
            return(convertValue.ToString());
        }
        public new void AddKeyNameMapping(string keyName, object keyObject)
        {
            if (string.IsNullOrEmpty(keyName))
            {
                throw ExceptionUtility.ArgumentNull("keyName");
            }

            if (keyObject == null)
            {
                throw ExceptionUtility.ArgumentNull("keyObject");
            }

            if (keyObject is Gost3410AsymmetricAlgorithmBase)
            {
                KeyNameMapping.Add(keyName, keyObject);
            }
            else
            {
                base.AddKeyNameMapping(keyName, keyObject);
            }
        }