几个月来,我一直在使用 Juce Library 研究 C++。我在我的项目中编写了一个代码,其中文本框的格式被修改为仅具有很少功能的十六进制值:
演示:
12 ab 32 a5 64
现在,如果我的光标在末尾并且我继续按退格键,它将删除值,因为它发生在一般文本框中。
现在如果我的光标在 a5 的开头,并且我按下“删除键”,值应该变成这样:
12 ab 32 56 4
如果我的光标位于 a5 的末尾并且我按下“删除键”,则不会发生任何事情。在输入值时,空格键不应该让间距 bw 两个值。应该只允许输入 af 和 0-9。
此处的 C++ 代码:
void CMSP430CommPanel::textEditorTextChanged (TextEditor& editor)
{
if(&editor == m_texti2cWrite)
{
int count = 0;
int location;
String text1 = m_texti2cWrite->getText();
String text = m_texti2cWrite->getText().removeCharacters(" ");
String hexString = String::empty;
int countCaret = m_texti2cWrite->getCaretPosition();
for(int i=0; i < text.length(); i++)
{
hexString = hexString + String (&text[i], 1);
if((i+1) % 2 == 0)
{
if(i != text.length()-1)
{
hexString = hexString + T(" ");
count ++;
}
}
count ++;
}
m_texti2cWrite->setText(hexString,false);
if(text1.length() == m_texti2cWrite->getCaretPosition())
{
m_texti2cWrite->setCaretPosition(count);
}
else
{
m_texti2cWrite->setCaretPosition(countCaret);
}
}
}
我希望同样的事情在我的 WPF 应用程序中工作。让我们说 C# 中相同代码的一般实现。
请帮忙!!!