Первые шаги WinForm - C#
Формулировка задачи:
Доброго всем пятничного утра!
В процессе изучения(который только начался) C# набросал программку. Она заполняет рандомно группы лиги чемпионов (нравится мне футбол) из 32 команд. Один TextBox - одна команда. Также "прикручен" гимн ЛЧ =).
Вопрос, а точнее просьба в заключается в следующем: Оцените, пожалуйста, код. Приму к сведению любую критику, в особенности касаемо структуры. Может можно как-то было проще намного все сделать?
В планах сделать вывод "шахматки" игр в файл, скорее в .xls. Подскажите откуда начать копать с экспортом данных из TextBox'ов в файл Excel.
Заранее спасибо!
Вот, собственно, код:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Media; using System.Threading; using System.IO; namespace ChLeague { public partial class Form1 : Form { public Form1() { InitializeComponent(); } List<string> clubs = new List<string>(){"Man. United","Valencia","Rangers","Buraspor","Barcelona", "Panathinaikos","Kobenhavn","Rubin Kazan","Bayern","Roma", "Basel","CFR Cluj","Chelsea","Marseille","Spartak Moscow","Zilina", "AC Milan","Real Madrid","Ajax","Auxerre","Shakhtar Donetsk","Braga", "Partizan","Internazionale","Bremen","Tottenham","Twente", "Lyon","Benfica","Shalke","H. Tel-Aviv","Arsenal"}; string[] clubtemp = {"Man. United","Valencia","Rangers","Buraspor","Barcelona", "Panathinaikos","Kobenhavn","Rubin Kazan","Bayern","Roma", "Basel","CFR Cluj","Chelsea","Marseille","Spartak Moscow","Zilina", "AC Milan","Real Madrid","Ajax","Auxerre","Shakhtar Donetsk","Braga", "Partizan","Internazionale","Bremen","Tottenham","Twente", "Lyon","Benfica","Shalke","H. Tel-Aviv","Arsenal"}; string perem = string.Empty.ToString(); int x = 0; Random rnd = new Random(); private void buttonA_Click(object sender, EventArgs e) { if (GroupA1.Text != string.Empty.ToString() & GroupA2.Text != string.Empty.ToString() & GroupA3.Text != string.Empty.ToString() & GroupA4.Text != string.Empty.ToString()) { MessageBox.Show("Все поля заполнены!"); } for (int i = 0; i < 4; i++) { if (GroupA1.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupA1.AppendText(clubs[x]); clubs.Remove(clubs[x]); } else if (GroupA2.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupA2.AppendText(clubs[x]); clubs.Remove(clubs[x]); } else if (GroupA3.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupA3.AppendText(clubs[x]); clubs.Remove(clubs[x]); } else if (GroupA4.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupA4.AppendText(clubs[x]); clubs.Remove(clubs[x]); } } textBox1.Text = string.Empty.ToString(); for (int i = 0; i < clubs.Count; i++) { textBox1.AppendText(clubs[i] + Environment.NewLine); } } private void buttonB_Click(object sender, EventArgs e) { if (GroupB1.Text != string.Empty.ToString() & GroupA2.Text != string.Empty.ToString() & GroupA3.Text != string.Empty.ToString() & GroupA4.Text != string.Empty.ToString()) { MessageBox.Show("Все поля заполнены!"); } for (int i = 0; i < 4; i++) { if (GroupB1.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupB1.AppendText(clubs[x]); clubs.Remove(clubs[x]); } else if (GroupB2.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupB2.AppendText(clubs[x]); clubs.Remove(clubs[x]); } else if (GroupB3.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupB3.AppendText(clubs[x]); clubs.Remove(clubs[x]); } else if (GroupB4.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupB4.AppendText(clubs[x]); clubs.Remove(clubs[x]); } } textBox1.Text = string.Empty.ToString(); for (int i = 0; i < clubs.Count; i++) { textBox1.AppendText(clubs[i] + Environment.NewLine); } } private void buttonC_Click(object sender, EventArgs e) { if (GroupC1.Text != string.Empty.ToString() & GroupA2.Text != string.Empty.ToString() & GroupA3.Text != string.Empty.ToString() & GroupA4.Text != string.Empty.ToString()) { MessageBox.Show("Все поля заполнены!"); } for (int i = 0; i < 4; i++) { if (GroupC1.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupC1.AppendText(clubs[x]); clubs.Remove(clubs[x]); } else if (GroupC2.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupC2.AppendText(clubs[x]); clubs.Remove(clubs[x]); } else if (GroupC3.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupC3.AppendText(clubs[x]); clubs.Remove(clubs[x]); } else if (GroupC4.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupC4.AppendText(clubs[x]); clubs.Remove(clubs[x]); } } textBox1.Text = string.Empty.ToString(); for (int i = 0; i < clubs.Count; i++) { textBox1.AppendText(clubs[i] + Environment.NewLine); } } private void buttonD_Click(object sender, EventArgs e) { if (GroupD1.Text != string.Empty.ToString() & GroupA2.Text != string.Empty.ToString() & GroupA3.Text != string.Empty.ToString() & GroupA4.Text != string.Empty.ToString()) { MessageBox.Show("Все поля заполнены!"); } for (int i = 0; i < 4; i++) { if (GroupD1.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupD1.AppendText(clubs[x]); clubs.Remove(clubs[x]); } else if (GroupD2.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupD2.AppendText(clubs[x]); clubs.Remove(clubs[x]); } else if (GroupD3.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupD3.AppendText(clubs[x]); clubs.Remove(clubs[x]); } else if (GroupD4.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupD4.AppendText(clubs[x]); clubs.Remove(clubs[x]); } } textBox1.Text = string.Empty.ToString(); for (int i = 0; i < clubs.Count; i++) { textBox1.AppendText(clubs[i] + Environment.NewLine); } } private void buttonE_Click(object sender, EventArgs e) { if (GroupE1.Text != string.Empty.ToString() & GroupE2.Text != string.Empty.ToString() & GroupE3.Text != string.Empty.ToString() & GroupE4.Text != string.Empty.ToString()) { MessageBox.Show("Все поля заполнены!"); } for (int i = 0; i < 4; i++) { if (GroupE1.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupE1.AppendText(clubs[x]); clubs.Remove(clubs[x]); } else if (GroupE2.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupE2.AppendText(clubs[x]); clubs.Remove(clubs[x]); } else if (GroupE3.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupE3.AppendText(clubs[x]); clubs.Remove(clubs[x]); } else if (GroupE4.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupE4.AppendText(clubs[x]); clubs.Remove(clubs[x]); } } textBox1.Text = string.Empty.ToString(); for (int i = 0; i < clubs.Count; i++) { textBox1.AppendText(clubs[i] + Environment.NewLine); } } private void buttonF_Click(object sender, EventArgs e) { if (GroupF1.Text != string.Empty.ToString() & GroupF2.Text != string.Empty.ToString() & GroupF3.Text != string.Empty.ToString() & GroupF4.Text != string.Empty.ToString()) { MessageBox.Show("Все поля заполнены!"); } for (int i = 0; i < 4; i++) { if (GroupF1.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupF1.AppendText(clubs[x]); clubs.Remove(clubs[x]); } else if (GroupF2.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupF2.AppendText(clubs[x]); clubs.Remove(clubs[x]); } else if (GroupF3.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupF3.AppendText(clubs[x]); clubs.Remove(clubs[x]); } else if (GroupF4.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupF4.AppendText(clubs[x]); clubs.Remove(clubs[x]); } } textBox1.Text = string.Empty.ToString(); for (int i = 0; i < clubs.Count; i++) { textBox1.AppendText(clubs[i] + Environment.NewLine); } } private void buttonG_Click(object sender, EventArgs e) { if (GroupG1.Text != string.Empty.ToString() & GroupG2.Text != string.Empty.ToString() & GroupG3.Text != string.Empty.ToString() & GroupG4.Text != string.Empty.ToString()) { MessageBox.Show("Все поля заполнены!"); } for (int i = 0; i < 4; i++) { if (GroupG1.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupG1.AppendText(clubs[x]); clubs.Remove(clubs[x]); } else if (GroupG2.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupG2.AppendText(clubs[x]); clubs.Remove(clubs[x]); } else if (GroupG3.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupG3.AppendText(clubs[x]); clubs.Remove(clubs[x]); } else if (GroupG4.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupG4.AppendText(clubs[x]); clubs.Remove(clubs[x]); } } textBox1.Text = string.Empty.ToString(); for (int i = 0; i < clubs.Count; i++) { textBox1.AppendText(clubs[i] + Environment.NewLine); } } private void buttonH_Click(object sender, EventArgs e) { if (GroupH1.Text != string.Empty.ToString() & GroupH2.Text != string.Empty.ToString() & GroupH3.Text != string.Empty.ToString() & GroupH4.Text != string.Empty.ToString()) { MessageBox.Show("Все поля заполнены!"); } for (int i = 0; i < 4; i++) { if (GroupH1.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupH1.AppendText(clubs[x]); clubs.Remove(clubs[x]); } else if (GroupH2.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupH2.AppendText(clubs[x]); clubs.Remove(clubs[x]); } else if (GroupH3.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupH3.AppendText(clubs[x]); clubs.Remove(clubs[x]); } else if (GroupH4.Text == string.Empty.ToString()) { x = rnd.Next(0, clubs.Count); GroupH4.AppendText(clubs[x]); clubs.Remove(clubs[x]); } } textBox1.Text = string.Empty.ToString(); for (int i = 0; i < clubs.Count; i++) { textBox1.AppendText(clubs[i] + Environment.NewLine); } } private void ClearAllFields_Click(object sender, EventArgs e) { MessageBox.Show("Пока что не работает", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Stop); } private void RefreshClubs_Click(object sender, EventArgs e) { if (MessageBox.Show("Вы точно хотите обновить таблицу команд?" + Environment.NewLine + "Это приведет к очищению групп и обратному занесению групп в список", "Обновление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { foreach (TextBox tB in Controls.OfType<TextBox>()) { tB.Text = ""; } clubs.Clear(); for (int i = 0; i < 32; i++) { clubs.Add(clubtemp[i]); } } //MessageBox.Show("Функция в разработке =)", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Stop); } private void About_Click(object sender, EventArgs e) { MessageBox.Show("Программа выполняет сортировку клубов лиги чемпионов по группам в случайном порядке".Trim(), "Version 1.0b", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void GymnOfLC_Click(object sender, EventArgs e) { SoundPlayer sp = new SoundPlayer(); sp.Stream = Properties.Resources.UEFA_gimn_ligi_chempionov; sp.Play(); } private void button1_Click(object sender, EventArgs e) { SoundPlayer sp = new SoundPlayer(); sp.Stop(); } private void Exit_Click(object sender, EventArgs e) { this.Close(); } } }
Решение задачи: «Первые шаги WinForm»
textual
Листинг программы
string perem = string.Empty.ToString();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д