Это все крайне интересно, конечно, но что-то мне тут не очень понятно, чем тут можно помочь. Мозги ж не купишь. Нафига тебе, например, этот интерфейс?
Сделай следующее:
- Заведи отдельный класс "Еда" со всеми свойствами.
- Сделай инициализацию свойств в конструкторе.
- Сделай, чтобы ToString этого класса показывал название еды.
- Добавь несколько экземпляров класса в первый комбо.
- Добавь в комбо обработчик события SelectedChanged, в нем пропиши показ свойств выбранной еды на форме.
Тогда вся эта бредятинка начнет напоминать что-то, например, хороший и стройный код.
using System.Windows .Forms;
namespace Proga1{
public partial class Form1 : Form {
public Form1() {
InitializeComponent(); }
public enum Eda
{ Pie,
IceCream, Cookies
}
public interface IEda {
string Info(); string Cost(int kolvokal);
}
public class DesertName : IEda {
public Eda DesertType { get; private set; } public string Name { get; private set; }
public int Year { get; private set; } public string Producer { get; private set; }
public int ShelfLife { get; private set; } public double Composition { get; private set; }
public DesertName(Eda desertType, string name, int year, string producer, int shelfLife, double composition)
{ DesertType = desertType;
Name = name; Year = year;
Producer = producer; ShelfLife = shelfLife;
Composition = composition; }
public string Info()
{ return $"Тип десерта: {DesertType}\nНазвание: {Name}\nДата: {Year}\nПроизводитель: {Producer}\nСрок годности: {ShelfLife}\nСостав: {Composition}";
}
public string Cost(int kolvokal) {
double totalCost = kolvokal * (int)DesertType; return $"Количество калорий: {kolvokal}, общая стоимость: {totalCost}";
} }
private void button1_Click(object sender, EventArgs e)
{
try {
Eda selectedDesert = (Eda)comboBox1.SelectedIndex; string name = textBox1.Text;
int year = dateTimePicker1.Value.Year; string producer = textBox3.Text;
int shelfLife = int.Parse(textBox2.Text); double composition = double.Parse(textBox4.Text);
DesertName desertName = new DesertName(selectedDesert, name, year, producer, shelfLife, composition);
label8.Text = desertName.Info(); }
catch (Exception ex) {
MessageBox.Show($"Ошибка: {ex.Message}"); }
}
private void button2_Click(object sender, EventArgs e) {
try {
int calories = int.Parse(textBox5.Text); return $"Стоимость посадки {kolvokal} саженцев: {totalCost} руб.";
} catch (Exception ex)
{ MessageBox.Show($"Ошибка: {ex.Message}");
} }
private void button2_Click_1(object sender, EventArgs e)
{
} }
}