C# aplikacja konsolowa

0

Witam,
mam mały problem z wywoływaniem okna z aplikacji konsolowej.
Mianowicie, wszystko idzie dobrze do momentu otworzenia okna. W tym momencie wszystko się zacina i zostaje takie coś
title

0

Zdjęcie nie działa

0

screenshot-20180520103937.png

0

Pokaż kod, inaczej będzie ciężko cokolwiek powiedzieć

0

Episode_one_thief.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using System.IO;

namespace ConsoleApp3
{
    public class Episode_one_thief
    {
        Equip equip = new Equip();
       private string answer;
        

         public void Run_episode_one_thief()
        {
            Console.Clear();
            Console.WriteLine("Witaj w Westtekście, "+ New_account.plyer_name + "\n" +
                "Znajdujemy się w małej miejscowości niedaleko stolicy. Dotarcie do niej będzie Twoim pierwszym zadaniem wprowadzającym Cię w nasz\n" +
                "świat. Na początek dostałeś od niego parę rzeczy, sprawdź teraz swój plecak.\n" +
                "Wskazówka: zawartość plecaka możesz sprawdzić, wpisując w konsoli /equip");
            
            answer = Console.ReadLine();
            
            if (answer == "/equip")
            {
                equip.Show();
                Console.ReadKey();
            }
            else
            {
                Console.Write("Nie możesz tego zrobić.");
                Thread.Sleep(1500);
                Run_episode_one_thief();

            }
        }
    }
}

0

Okienko:
screenshot-20180520105046.png
Kod

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;

namespace ConsoleApp3
{
    public partial class Equip : Form
    {
        public Equip()
        {
            InitializeComponent();

            player_name_label.Text = New_account.plyer_name;
            poziom_label.Text = Convert.ToString(Program.player_level);
            exp_label.Text = Convert.ToString(Program.experience);
            money_label.Text = Convert.ToString(Program.money);
        }

       
        private void button1_Click_1(object sender, EventArgs e)
        {
            Close();
        }
    }
}

0

Po primo , jeśli mowa jest o oknie to na pewno nie jest to aplikacja konsolowa tylko aplikacja Windows Forms

0

To jest problem. Odpalasz okno, a potem oczekujesz od razu naciśnięcia klawisza, przez co nie wykonują się operacje przetwarzania zdarzeń okna, tylko blokuje się wątek.

equip.Show();
Console.ReadKey();

Najłatwiejsze rozwiązanie to zrobić ShowDialog() zamiast Show() - wtedy dopóki nie zakończysz pracy z oknem, nie możesz wchodzić w interakcję z konsolą (innym oknem). I to chyba nawet będzie w twojej grze nie taki głupi pomysł.

Po primo , jeśli mowa jest o oknie to na pewno nie jest to aplikacja konsolowa tylko aplikacja Windows Forms

Aplikacje konsolowe mogą mieć okna, jakkolwiek głupio to nie brzmi. W zasadzie aplikacje okienkowe to są aplikacje konsolowe bez pokazywania okna konsoli :)

0

wystarczyło dodać bibliotekę System.Windows.Forms i uruchomić okno za pomocą Application.Run(new Equip()) - ktoś to zaproponował, tylko z niewiadomych przyczyn wpis zniknął

1 użytkowników online, w tym zalogowanych: 0, gości: 1