2015-02-07 3 views
0

Итак, я создал метод под названием KeyCheck(), который должен проверить, нажата ли клавиша (в частности, клавиша ввода), и если она будет нажата button1.Что нужно передать методу, который проверяет, нажат ли клавиша?

К сожалению, когда я вызываю метод, я не уверен, что ему передать. Я хочу, чтобы он знал, когда нажата клавиша ввода.

public partial class Form1 : Form 
{ 
    public void GameStart() 
    { 
     richTextBox1.WordWrap = true; 
     richTextBox1.SelectionAlignment = HorizontalAlignment.Center; 
     richTextBox1.Text = "Hello, Welcome to Grandar!"; 
    } 

    public Form1() 
    { 
     InitializeComponent(); 
     GameStart(); 
     //What variable do I pass to KeyCheck Method? 
     KeyCheck(); 
    } 

    private void KeyCheck(KeyPressEventArgs k) 
    { 
     if (k.KeyChar == (char)Keys.Enter) 
     { 
      button1.PerformClick(); 
     } 
    } 

    private void richTextBox1_TextChanged(object sender, EventArgs e) 
    { 

    } 

    private void button1_Click(object sender, EventArgs e) 
    { 

    } 
} 

ответ

0

Пара вещей, чтобы отметить здесь:

а) действительно ли вы хотите, чтобы называть KeyCheck непосредственно как ваш пример кода показывает, или он должен быть подключен в качестве обработчика по форме (где информация вы запрашиваете, будет автоматически предоставлено - потребуется изменение подписи для согласования со стандартными обработчиками, как и в некоторых других ваших методах).

б) Я не думаю, что вы будете в состоянии назвать KeyCheck метод, как вы делаете, если вы не подключить еще одно событие, чтобы захватить нажатие клавиши, а затем передать его в этот метод, по newing вверх new KeyPressEvent(...)

Поэтому, чтобы ответить на ваш вопрос, я думаю, что вы хотите что-то вроде (псевдо-код)

public Form1() 
{ 
    InitializeComponent(); 
    GameStart(); 

    // Wire up a handler for the KeyPress event 
    this.KeyPress += KeyCheck; 
} 

private void KeyCheck(object sender, KeyPressEventArgs e) 
{ 
    if (e.KeyChar == (char)Keys.Enter) 
    { 
     button1.PerformClick(); 
    } 
} 
+0

Благодарим вас за ответ. – user3751027

0

подписаться на это:

this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.KeyPress_Method); 

и метод проверки клавиши «Ввод»:

void KeyPress_Method(object sender, KeyPressEventArgs e) 
{ 
    if (e.KeyChar == (char)13) // enter key 
    { 
     // your code 
    } 
} 
+0

Благодарим вас за ответ. – user3751027

Смежные вопросы