自动设置文本框文本的格式
本文关键字:文本 格式 置文本 | 更新日期: 2023-09-27 18:31:54
我想自动格式化在文本框中输入的文本,如下所示:
如果用户输入 2 个字符(如 38),则会自动添加一个空格。 所以,如果我输入384052最终结果将是:38 30 52。
我试过这样做,但这是从右到左的一些原因,一切都搞砸了..我做错了什么?
static int Count = 0;
private void packetTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
Count++;
if (Count % 2 == 0)
{
packetTextBox.Text += " ";
}
}
Thanks!
如果您只是让用户键入,然后在用户离开TextBox
时修改内容,那就更好了。
为此,您可以不对KeyPress
事件做出反应,而是对TextChanged
事件做出反应。
private void packetTextBox_TextChanged(object sender, EventArgs e)
{
string oldValue = (sender as TextBox).Text.Trim();
string newValue = "";
// IF there are more than 2 characters in oldValue:
// Move 2 chars from oldValue to newValue, and add a space to newValue
// Remove the first 2 chars from oldValue
// ELSE
// Just append oldValue to newValue
// Make oldValue empty
// REPEAT as long as oldValue is not empty
(sender as TextBox).Text = newValue;
}
On TextChanged 事件:
int space = 0;
string finalString ="";
for (i = 0; i < txtbox.lenght; i++)
{
finalString = finalString + string[i];
space++;
if (space = 3 )
{
finalString = finalString + " ";
space = 0;
}
}
我用过
int amount;
private void textBox1_TextChanged(object sender, EventArgs e)
{
amount++;
if (amount == 2)
{
textBox1.Text += " ";
textBox1.Select(textBox1.Text.Length, 0);
amount = 0;
}
}
试试这个。在文本更改事件上
textBoxX3.Text = Convert.ToInt64(textBoxX3.Text.Replace(",", "")).ToString("N0");
textBoxX3.SelectionStart = textBoxX3.Text.Length + 1;