Консоль в windows forms - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет. Подскажите как решить задачку. В приложении windows forms пытаюсь чтобы при нажатии на кнопку отрабатывалось мое приложение. А именно цикл, вызов консоли. Если делаю цикл, то приложение просто виснет. Хотя оно же созданное в шаблоне console работает нормально. Так вот я до минимума все урезал чтобы просто посмотреть выведется ли при нажатии на кнопку моя консоль - фиг. Вылетает с ошибкой. Что я делаю не так?
private void button1_Click(object sender, EventArgs e)
        {
 
                System.Console.WriteLine("Сработал триггер LONG");
                System.Console.ReadKey();
 
            }
System.InvalidOperationException не обработано Message=Невозможно считывать клавиши, когда любое приложение не имеет консоли или ввод данных на консоли был переадресован из файла. Попробуйте использовать Console.Read.

Решение задачи: «Консоль в windows forms»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
using System.IO;
using Microsoft.Win32;
using System.Net;
using System.Runtime.InteropServices;
 
namespace TEST
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            Task.Factory.StartNew(Console);
        }
 
        [DllImport("kernel32.dll", SetLastError = true)]
        [return: MarshalAs(UnmanagedType.Bool)]
        private static extern bool AllocConsole();
 
        [DllImport("kernel32.dll", SetLastError = true)]
        [return: MarshalAs(UnmanagedType.Bool)]
        private static extern bool FreeConsole();
 
 
 
        private void Console()
        {
           
            if (AllocConsole())
            {
               System.Console.WriteLine("Введите текст");
                string a = System.Console.ReadLine();
                System.Console.WriteLine("Вы ввели: " a);
 
                System.Console.ReadLine();
 
 
 
                FreeConsole();
            }
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.214 из 5