Это не ответ, только некоторые подсказки в правильном направлении, не может публиковаться как комментарий!
Прежде всего, вы делаете много ненужных сравнений строк. Это плохая практика. Проверьте, как я использую enum
для заполнения ваших списков. Проверьте также, как я читаю выбранное значение из выпадающего списка. Сравните, как можно нажимать кнопку, только если значение действительно.
Вы можете начать использовать новую функцию C#, выражение переключения. Мои несколько строк не завершены, но должны дать вам подсказку в правильном направлении.
{
double fromValue;
enum Units
{
Inches,
Yards,
Feet
}
public Form1()
{
InitializeComponent();
button1.Enabled = false;
fromBox.DataSource = Enum.GetValues(typeof(Units));
toBox.DataSource = Enum.GetValues(typeof(Units));
}
private double convert(Units from, Units to, double value)
{
return (from, to) switch
{
(Units.Yards, Units.Inches) => value * 36.0,
(Units.Yards, Units.Yards) => value,
//..
};
}
private void button1_Click(object sender, EventArgs e)
{
var fromUnit = (Units)fromBox.SelectedItem;
var toUnit = (Units)toBox.SelectedItem;
label1.Text = convert(fromUnit, toUnit, fromValue).ToString();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
button1.Enabled = Double.TryParse(textBox1.Text, out fromValue);
}
}```