Элемент управления NumericUpDown запускается с начала при первом вводе - PullRequest
0 голосов
/ 09 марта 2020

У меня элемент управления NumericUpDown, созданный динамически следующим образом:

            var numericUpDown = new NumericUpDown
            {
                Name = "numericUpDown" + Labels.Count,
                Maximum = decimal.MaxValue,
                Minimum = decimal.MinValue,
                Value = rModel[i].ContractedAmount,
                Location = new Point(12, YPos),
                Size = new Size(70, 19),
                DecimalPlaces = 4
            };
            this.Controls.Add(numericUpDown);

Поэтому при загрузке он выдает что-то вроде этого:

enter image description here

У меня есть событие, если я управляю c и управляю им, выбираю все элементы управления:

enter image description here

Теперь, если я хочу изменить значение, я просто набираю IE число 2, как только это значение добавляется, курсор появляется на первом месте управления enter image description here

Так что, если я наберу второе число, оно просто добавится на первое место, вставленное справа от число 2. Таким образом, если я набираю 9, значение теперь равно 92. Это происходит только один раз, потому что, если я набираю больше значений после 92, оно правильно добавляется после 9 IE

977423487342

Но сначала всегда в конце. С уважением

Примечание: я не могу использовать десятичные знаки. Если я наберу . указатель, просто go на первое место. То же самое происходит, если я использую backspace после десятичного числа.

Событие TextChange:

private void NumericUpDown_TextChanged(object sender, EventArgs e)
    {
         NumericWasChanged = true;

        lblCurrentAmount.Text = "0";

        foreach (Panel panel in tpnlDeliveryBreakdown.Controls.OfType<Panel>())
        {
            foreach (Control c in panel.Controls)
            {
                if (c.GetType() == typeof(NumericUpDown))
                {
                    var currentControl = (c as NumericUpDown);
                    lblCurrentAmount.Text = (decimal.Parse(lblCurrentAmount.Text) + decimal.Parse(currentControl.Value.ToString())).ToString();
                }
            }

        }

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...