Прочитать клавишу из текстового поля

  1. 5 мес. назад

    На форме есть textBox куда надо ввести клавишу, например человек пишет туда F3 (хотя это может быть что угодно), как мне прочесть это string значение из поля, что бы назначить его в e.KeyData? Ведь там другой тип, как его отконвертировать?

    Другими словами, мне надо прочесть значение клавиши и определить что это за клавиша.

  2. в голову пришел мутантский метод- создать словарь

  3. @10116.nik в голову пришел мутантский метод- создать словарь

    Мне посоветовали сделать вот так

    Keys Hotkey;
    Enum.TryParse<Keys>(textBox1.Text, out Hotkey);
  4. @10298.Aleksandr Мне посоветовали сделать вот так
    Keys Hotkey; Enum.TryParse<Keys>(textBox1.Text, out Hotkey);

    да очень хорошее решение, но так как я слаб в программировании я б написал функцию:

    public Keys KeySerch(string _serch)
    {
    string Serch=_serch;
    for (Keys Enykey = Keys.A; Enykey <= Keys.Zoom; Enykey++)
    {
    if (Serch == Enykey.ToString())
    return Enykey;
    }
    return default (Keys);
    }

  5. @10116.nik да очень хорошее решение, но так как я слаб в программировании я б написал функцию:.
    ...

    Можно Я немного понублю?

    public Keys KeySerch(string _serch)

    В поле _serch должна поступать введённая клавиша?

    В строке

    for (Keys Enykey = Keys.A; Enykey <= Keys.Zoom; Enykey++)

    Keys - это пользовательский тип? Так правильно называется?

    P. S.
    мне твой способ нравиться, на одном форуме мне предложили составить таблицу типа вот этой .

  6. 5 мес. назад исправил 10116.nik

    @10298.Aleksandr Можно Я немного понублю?

    В поле _serch должна поступать введённая клавиша?

    В строке

    for (Keys Enykey = Keys.A; Enykey <= Keys.Zoom; Enykey++)

    Keys - это пользовательский тип? Так правильно называется?

    P. S.
    мне твой способ нравиться, на одном форуме мне предложили составить таблицу типа вот этой .

    _serch это строка из поля ввода должна соответствовать члену перечисления https://msdn.microsoft.com/ru-ru/library/system.windows.forms.keys(v=vs.110).aspx там же про Keys

    но то что тебе посоветовали
    Keys Hotkey;
    Enum.TryParse<Keys>(textBox1.Text, out Hotkey);
    делает приблизительно то же
    только лучше

  7. 5 мес. назад исправил 10116.nik

    но что угодно туда писать не получится только допустимые значения из Keys, что бы писать свои какие то значения типа "бабах" , а потом преобразуя получит код клавиши Enter, придется написать свое перечисление
    и назначить в e.KeyData мне кажется не получится так как только для чтения, а вот сравнить да и сравнивается оно с целыми неотрицательными

  8. 5 мес. назад исправил 10116.nik

    @10116.nik что бы писать свои какие то значения типа "бабах" , а потом преобразуя получит код клавиши Enter, придется написать свое перечисление
    и назначить в e.KeyData мне кажется не получится так как только для чтения, а вот сравнить да и сравнивается оно с целыми неотрицательными

    с этим я погорячился ))))

  9. Что мешает использовать вместо текстбокса выпадающий список?

  10. @10116.nik ...
    Keys Hotkey;
    Enum.TryParse<Keys>(textBox1.Text, out Hotkey);
    ....

    Я ещё спрошу, как называется элемент <Keys>, вообще, что значат эти вот <> скобочки.

  11. Шаблон типа

 

или зарегистрируйтесь чтобы комментировать!