Windows Forms c++ -CLI:将文本框输入中的点替换为逗号



我尝试用自动更正用户输入到文本框中的问题来解决非常微不足道的部分。我设法检测用户是否输入号码(如有必要)并控制其范围。现在我需要自动替换点与逗号任何时候用户键入它到文本框。我希望下面的代码片段可以正常工作:

private: System::Void sample_ctrl_KeyDown(System::Object^  sender,
        System::Windows::Forms::KeyEventArgs^  e) {
    if (e->KeyCode == Keys::OemPeriod) {
        int pos = timer_period_ctrl->SelectionStart;
        sample_ctrl->Text = sample_ctrl->Text->Insert(pos,",");
        sample_ctrl->SelectionStart = pos + 1;
        e->Handled = true;  
    }
}

我期望的是捕获按下的键,用Insert()自己处理它,并告诉侦听器我做了必须用

做的事情
e->Handled = true;

然而,结果如下:

// Before hitting '.' key
    12
// After hitting '.' key
    12,.

有没有办法忽略这个自然的'。添加到文本框?这是解决这个问题的最好办法吗?

您需要使用KeyPress事件而不是KeyDown事件。

此事件使用KeyPressEventArgs等而不是

if (e->KeyCode == Keys::OemPeriod) {

你需要使用

if (e->KeyChar == '.') {

相关内容

  • 没有找到相关文章

最新更新