Как принять только одну десятичную точку в ячейке данных в c # - PullRequest
0 голосов
/ 21 октября 2018

Я использую этот код для события bunifuTextbox нажатия клавиш, и он прекрасно работает:

               //accept only 3 decimal places
                if (System.Text.RegularExpressions.Regex.IsMatch(quantitytextbox.Text, @"\d+(\.\d{3,3})") && !char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }

            if (e.KeyChar == '.' && quantitytextbox.Text.Length == 0)
            {
                // Stop first char as a dot input
                e.Handled = true;
            }
            if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && (e.KeyChar != '.'))
            {
                e.Handled = true;
            }

            // only allow one decimal point
            if ((e.KeyChar == '.') && ((sender as Bunifu.Framework.UI.BunifuMaterialTextbox).Text.IndexOf('.') > -1))
            {
                e.Handled = true;
            }

Может кто-нибудь, пожалуйста, скажите мне, что поместить в это условие "если", потому что это где ошибкапроисходит, когда я пытаюсь использовать этот код для моего datagridview:

                // only allow one decimal point
            if ((e.KeyChar == '.') && ((sender as /* I dont know what to put here*/).Text.IndexOf('.') > -1))
            {
                e.Handled = true;
            }
...