如何在文本框中的字节之间添加 space?
How to add space between bytes in textbox?
我有一个只获取字节的文本框,我想在每个字节之间添加 space。
到目前为止我做了什么?
public int a=0;
public char c;
private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
{
c = e.KeyChar;
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
a = textBox2.TextLength % 3;
if (c != 0x08 && a==2)
{
a = textBox2.TextLength % 3;
int selectionIndex = textBox2.SelectionStart;
textBox2.Text = textBox2.Text.Insert(selectionIndex, " ");
textBox2.SelectionStart = selectionIndex + 1; // restore cursor position
}
}
我用这段代码添加 space 但是如果我删除一些字节它不会添加 space.
我认为 'if' 条件存在一些问题。
例如我写 'abcdef' 它添加 space 并写
ab cd ef
然后我删除 'cdef' 和 space 它在这里正常工作。
我再写一次 'cdef' 没用,结果会是这样
abcde f
我该如何解决这个问题?
我用这段代码解决了问题。
private void textBox5_TextChanged(object sender, EventArgs e)
{
int selectionIndex = textBox5.SelectionStart;
int chars = textBox5.Text.Length;
int a = chars % 3;
if (a == 2 && c!=0x08)
{
textBox5.Text = textBox5.Text.Insert(selectionIndex, " ");
textBox5.SelectionStart = selectionIndex + 1; // restore cursor position
}
if (chars > 1)
{
if (a == 0 && c == 0x08)
{
textBox5.Text = textBox5.Text.Remove(chars - 1);
textBox5.SelectionStart = selectionIndex + 1;
}
}
}
我有一个只获取字节的文本框,我想在每个字节之间添加 space。
到目前为止我做了什么?
public int a=0;
public char c;
private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
{
c = e.KeyChar;
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
a = textBox2.TextLength % 3;
if (c != 0x08 && a==2)
{
a = textBox2.TextLength % 3;
int selectionIndex = textBox2.SelectionStart;
textBox2.Text = textBox2.Text.Insert(selectionIndex, " ");
textBox2.SelectionStart = selectionIndex + 1; // restore cursor position
}
}
我用这段代码添加 space 但是如果我删除一些字节它不会添加 space.
我认为 'if' 条件存在一些问题。
例如我写 'abcdef' 它添加 space 并写
ab cd ef
然后我删除 'cdef' 和 space 它在这里正常工作。 我再写一次 'cdef' 没用,结果会是这样
abcde f
我该如何解决这个问题?
我用这段代码解决了问题。
private void textBox5_TextChanged(object sender, EventArgs e)
{
int selectionIndex = textBox5.SelectionStart;
int chars = textBox5.Text.Length;
int a = chars % 3;
if (a == 2 && c!=0x08)
{
textBox5.Text = textBox5.Text.Insert(selectionIndex, " ");
textBox5.SelectionStart = selectionIndex + 1; // restore cursor position
}
if (chars > 1)
{
if (a == 0 && c == 0x08)
{
textBox5.Text = textBox5.Text.Remove(chars - 1);
textBox5.SelectionStart = selectionIndex + 1;
}
}
}