Мой код отлично работает в WindowsConsoleApplication
// The below code is working in WindowsConsoleApplication
class Class1
{
public int a = 0;
static void Main(string[] args)
{
Program prg = new Program();
prg.hell();
Console.WriteLine("Working" + prg.a);
Console.ReadKey();
}
public void hell()
{
Console.WriteLine("Press any key to stop");
while
(!Console.KeyAvailable || Console.ReadKey(true).Key != ConsoleKey.DownArrow )
{
a += 1;
}
}
}
Но когда я пытаюсь использовать метод hell
в C #, форма Windows выдает ошибку
// This code isn't working in C# windows form
class Class1
{
public int a = 0;
public void hell()
{
Console.WriteLine("Press any key to stop");
while
(!Console.KeyAvailable || Console.ReadKey(true).Key != ConsoleKey.DownArrow)
{
a += 1;
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
Class1 obj = new Class1();
MessageBox.Show("WORKING....");
obj.hell();
MessageBox.Show("Isn't Working...." + obj.a);
}
obj.hell()
throwsошибка
Невозможно увидеть, была ли нажата клавиша, когда какое-либо приложение не имеет консоли или когда ввод консоли был перенаправлен из файла.Попробуйте Console.In.Peek.
Как я могу решить эту проблему?И, пожалуйста, попробуйте скомпилировать код, чтобы увидеть, что происходит, я пробовал потоки, но они не помогают.И рабочий код будет мне более полезным, чем объяснение.Я тоже попробовал Form1_KeyDown
, но выдает ту же ошибку.