c# - 有没有更简单的方法来格式化这个字符串?
问题描述
我一直在尝试将这个字符串格式化为一个文本框,因为它正在被输入。我想要的输出结果如下:
用户按下'0':输出:'0 //'
用户按'6':输出:'06//'
用户按下'2':输出:'06/2 /'
等等
我目前拥有的:
private void fTranDate_KeyPress(object sender, KeyPressEventArgs e)
{
if(!Char.IsNumber(e.KeyChar) && !Char.IsControl(e.KeyChar) && fTranDate.Text.Length > 10)
{
e.Handled = true;
}
else if (!Char.IsControl(e.KeyChar)) //Is numeric
{
//Get the string from the field
var existing_string = fTranDate.Text;
//Strip the spaces and the slashes from the string
existing_string = existing_string.Replace("/", "").Replace(" ","");
//Append the new digit to the end of the string
existing_string= existing_string + e.KeyChar;
//Re-add the spaces on the end of the string
existing_string = String.Format("{0,-8}", existing_string);
var existing_char = existing_string.ToCharArray();
fTranDate.Text = String.Format("{0}{1}/{2}{3}/{4}{5}{6}{7}", existing_char[0],existing_char[1],existing_char[2],existing_char[3],existing_char[4],existing_char[5],existing_char[6],existing_char[7]);
fTranDate.SelectionStart = fTranDate.Text.Replace(" ","").Length;
fTranDate.SelectionLength = 0;
e.Handled = true;
}
}
有什么办法可以让这更精简吗?我尝试了其他一些想法,但这是唯一可行的想法。
解决方案
推荐阅读
- node.js - 通过 NestJs 框架通过 Passport Facebook 登录
- python - 如何在虚拟环境中(在 Windows 中)升级 python 版本?
- javascript - 将数据表导出到多个工作表中
- python - Python Numpy矩阵乘法使用循环将多个矩阵相乘
- python - Pandas 中的日期和月份混淆
- ruby - 有没有办法减少对 ruby 进程的互联网访问?
- node.js - 猫鼬插入顺序
- list - 在颤动中创建一个带有分隔符的开关列表图块
- laravel - 在 Laravel Vapor 上使用 Laravel Echo (Pusher)
- sql - 通过检查 SQL Server 中的购买日期值来获取少于 90 天的订单 ID