Рейтинг:
0
BillWoodruff
Используйте радиокнопки в том же контейнере (форма, панель и т. д.), где только один выбор это разрешено. Используйте флажки, чтобы обеспечить несколько независимых вариантов выбора.
Допустим, у вас есть три флажка: cbx1, cbx2, cbx3
0. определите переменные и напишите обработчик событий для события CheckStateChanged:
private decimal subtotal = 0.0m;
private CheckBox currentCbx;
private void Ingredients_CheckStateChanged(object sender, EventArgs e)
{
currentCbx = sender as CheckBox;
subtotal += currentCbx.Checked ? 0.25m : -0.25m;'
// for testing
textBox1.Text = subtotal.ToString();
}
1. Подключите обработчик событий ко всем трем флажкам во время разработки, выбрав их все и используя браузер свойств или в коде во время выполнения.
Используя этот метод, вы хотите быть уверены, что флажки установлены правильно.
все непроверено когда ваше приложение запускается.
Другой метод, если вам не нужно
динамическое обновление из под-итога, заключается в том, чтобы просто написать метод для вычисления значения, основанного на состоянии ваших флажков.
Member 13664566
Большое спасибо за ваш ответ. Теперь у меня есть каждый из моих трех флажков, использующих следующий код:
частная chkEnergyBooster_CheckedChanged недействительным(объект отправителя, EventArgs в электронной)
{
десятичный промежуточный итог = 0,0 м;
промежуточный итог += chkEnergyBooster.Проверено ? .25м : -0.25 м;
lblSubTotal.Текст = промежуточный итог.ToString("c");
}
Но у меня есть несколько проблем. Во-первых, когда я ставлю несколько флажков, число в lblSubtotal не идет от .25 до .50 до .75. Он просто остается на уровне 25, независимо от того, сколько ящиков я проверяю. Как мне заставить его увеличиться от этого?25?
Другая проблема заключается в том, что когда я устанавливаю и снимаю флажок, метка идет от $0.25 до ($0.25), и я не уверен, почему.
Кроме того, у меня есть много функций, которые используют переменную "subtotal" в других частях моей формы. Как мне сохранить значение этой переменной во всей форме? Похоже, что так, как у меня сейчас, он просто существует в этих чекбоксах.checkchanged events.
Спасибо!
BillWoodruff
1. " Во-первых, когда я ставлю несколько флажков, число в lblSubtotal не идет от .25 до .50 до .75. Он просто остается на уровне 0,25" это потому, что вы устанавливаете "промежуточный итог" на 0,00 каждый раз, когда вносится какое-либо изменение в любой флажок.
2. "Кроме того, у меня есть много функций, которые используют переменную "subtotal" в других частях моей формы. Как мне сохранить значение этой переменной во всей форме?" Определите переменную вне любого метода ... как в приведенном здесь примере кода.
Member 13664566
Спасибо! Мы очень ценим вашу помощь.
BillWoodruff
Если он полностью отвечает вашим проблемам, примите его как решение. Если полезно или не полезно, проголосуйте за свой рейтинг.