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ś
0
- screenshot-20180520103937.png (231 KB) - ściągnięć: 345
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:
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();
}
}
}
- screenshot-20180520105046.png (218 KB) - ściągnięć: 185

- Rejestracja:prawie 23 lata
- Ostatnio:około 20 godzin
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 :)