Первые шаги 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();