private void saveCardButton_Click(object sender, EventArgs e) { var checkedButton = cardSubTypeGroupBox.Controls.OfType <RadioButton>().FirstOrDefault(r => r.Checked); if (checkedButton != null && checkedButton.Checked) { if (card == null) { card = CardCreator.CreateNewCard(checkedButton.Text); } else { Color fontColor = card.FontCardColor; Color backColor = card.BackCardColor; card = CardCreator.CreateNewCard(checkedButton.Text); card.FontCardColor = fontColor; card.BackCardColor = backColor; } //var card = CardCreator.CreateNewCard(checkedButton.Text); CardCreator.FillMainFieldsOfCard(card, picturePathLabel.Text, nameTextBox.Text, descriptionTextBox.Text); var test = GetMyData(additionalParamsGroupBox, 5, 0, 0); switch (checkedButton.Text) { case "Modifier card": CardCreator.FillAdvFiledsOfCard((ModifierCard)card, GetMyData(additionalParamsGroupBox, 0, 1, 0), GetMyData(additionalParamsGroupBox, 0, 1, 1)); break; case "Monster card": CardCreator.FillAdvFiledsOfCard((MonsterCard)card, GetMyData(additionalParamsGroupBox, 0, 1, 0), GetMyData(additionalParamsGroupBox, 0, 1, 1), GetMyData(additionalParamsGroupBox, 0, 1, 4), GetMyData(additionalParamsGroupBox, 0, 1, 2), GetMyData(additionalParamsGroupBox, 0, 1, 3)); break; case "Item card": CardCreator.FillAdvFiledsOfCard((ItemCard)card, GetMyData(additionalParamsGroupBox, 0, 1, 0), GetMyData(additionalParamsGroupBox, 0, 1, 1), GetMyData(additionalParamsGroupBox, 0, 1, 2), GetMyData(additionalParamsGroupBox, 0, 1, 3), GetMyData(additionalParamsGroupBox, 0, 1, 4), GetMyData(additionalParamsGroupBox, 5, 0, 0)); break; case "One shot trasure card": CardCreator.FillAdvFiledsOfCard((OneShotTreasureCard)card, GetMyData(additionalParamsGroupBox, 0, 1, 0)); break; } CardPreview cp = new CardPreview(card); cp.ShowDialog(); } else { MessageBox.Show("Select card sub-type"); } }