Получение суммы текстового поля из всех динамически генерируемых пользовательских элементов управления
Я хочу добавить цену (метку) всего динамически генерируемого пользовательского элемента управления и установить метку на winform, как я могу это сделать? нажав кнопку ok на winform, я попробовал этот код, но он не добавил метки, и результат всегда равен 0. Вот изображение: https://imgur.com/a/ViPGt и это мой код:
private void add_Click(object sender, EventArgs e)
{
double g = 0;
foreach (Control ctrl in Controls)
{
if (ctrl is DynaItems)
{
var myCrl = ctrl as DynaItems;
g += Convert.ToInt32(myCrl.price.Text);
}
}
textBox1.Text = g.ToString();
}
1 ответ
Решение
Я думаю, что это может быть связано с тем, что вы хотите удвоить, когда вы переходите на Int32. Попробуйте этот код и в то же время проверьте правильность свойства "Контроль цен".
private void add_Click(object sender, EventArgs e)
{
double g = 0;
// Controls.OfType will automatically find your DynaItems controls and cast them for you
foreach (DynaItems dynaItem in Controls.OfType<DynaItems>())
{
// Breakpoint here and check the value of dynaItem.price.Text
g += double.Parse(dynaItem.price.Text);
}
textBox1.Text = g.ToString();
}