Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > как точку подменить на запятую


Автор: transkriptsiya 22.2.2013, 13:13
подскажите. есть калькулятор с текстовым полем в которое запрещено вводить что либо кроме цыфр, одного минуса, и одной запятой и бекспейса

как сделать что бы когда пользователь нажимает точку - автоматом подставлялась запятая?

 
Код

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            // Если это не цифра.
            if (!Char.IsDigit(e.KeyChar))
            {
               
              // Запрет на ввод более одной десятичной точки.
                if (e.KeyChar != ',' || textBox1.Text.IndexOf(",") != -1)
               // Запрет на ввод более одного минуса.
                if (e.KeyChar != '-' || textBox1.Text.IndexOf("-") != -1)
                // Розрешение на backspace.
                if (e.KeyChar != (char)Keys.Back)
                {
                    e.Handled = true;
                }
            }
        }


Автор: FallFan 27.2.2013, 23:04
Есть код на VB, может поможет:

Код

    Private Sub txtPayment_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtPayment.KeyPress
        Call CurrencyFilter(sender, e.KeyChar)
    End Sub


Код

    Public Sub CurrencyFilter(ByVal Target As Object, ByRef Key As Char)
        'Функция отфильтровывающая ввод для получения формата Currency
        'Обнуление ввода, если не цифра и запятая, точка, 'минус.
        If (AscW(Key) < 48 Or AscW(Key) > 58) And AscW(Key) <> 44 And AscW(Key) <> 46 And AscW(Key) <> 8 Then Key = CChar("")

        'Замена точки на запятую
        If AscW(Key) = 46 Then Key = CChar(",")

        'Проверка на единственность десятичного разделителя
        If AscW(Key) = 44 Then
            If InStr(Target.Text.ToString, ",", vbTextCompare) <> 0 Then Key = CChar("")
        End If
    End Sub

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)