类型。代替 ,

时间:2012-02-25 00:24:54

标签: c# visual-studio-2010 textbox

我有一个文本框,我希望在其中输入.而不是,

if (e.KeyCode == Keys.Oemcomma) tbPrecio.Text = tbPrecio.Text.Split(',')[0]+".";

但它无法正常工作。

3 个答案:

答案 0 :(得分:3)

只需将处理程序方法更改为:

private void tbPrecio_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Oemcomma)
    {
        tbPrecio.AppendText(".");
        e.SuppressKeyPress = true;
    }
}

我认为这里的关键词是SuppressKeyPress

答案 1 :(得分:1)

这是否可以改为使用屏蔽输入?

http://digitalbush.com/projects/masked-input-plugin/

自动替换角色让一些人感到不快。

答案 2 :(得分:0)

试试这段代码

private void tbPrecio_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Oemcomma)
            tbPrecio.Text = tbPrecio.Text.Replace(',','.');
        tbPrecio.Select(tbPrecio.Text.Length, 0);
}

但是使用@Jason的逻辑作为最佳