当表单“insert”出现时,我得到了一个textbox1.text =“J001”。 “插入”中有一个按钮,所以如果我们点击那个按钮,mbox会说“添加J001”。
但是,我想改变textbox.text =“J002”;所以我正在使用。
string splitter=textbox1.text.toString().subString(1)
它将返回001.现在我需要做什么002?我不能在它上面+1,另外,我没有使用任何数据库,因此当我们关闭表单并重新打开它时它将再次成为“J001”。单击按钮,文本变为“J002”。关闭表格,重新打开,显示“J001”和无限循环。
答案 0 :(得分:1)
很难理解你想要的东西,但也许这就是你要找的东西:
string splitter = textbox1.Text.ToString().Substring(1);
try {
int number = Convert.ToInt32(splitter) + 1;
} catch (FormatException e) {
// Not a number...
}
textbox1.Text = String.Format("J{0}", number.ToString());
答案 1 :(得分:1)
使用静态变量跟踪您的号码,然后简单地格式化文本并将计数器加1。如果您关闭应用程序并重新启动它,计数器将重新开始。如果你想要它持久存在,你必须将值保存在像数据库这样的地方。
static int _counter = 0;
...
textbox1.Text = string.Format("J{0,2}", ++_counter);
答案 2 :(得分:0)
这样的东西:它将处理可变长度前缀和可变长度数(最长为长,所以19位)。
首先它计算前缀后面的位数,然后用增量值替换这些数字。
string str = "J9999";
int firstDigit = str.Length;
for (; firstDigit > 0; firstDigit--)
{
if (!char.IsDigit(str[firstDigit - 1]))
{
break;
}
}
if (firstDigit < str.Length)
{
long num = long.Parse(str.Substring(firstDigit));
num++;
int numOfDigits = str.Length - firstDigit;
var temp = num.ToString("D" + numOfDigits);
//Uncomment this for fixed length with overflow: J999->J000, otherwhise you have J999->J1000
//temp = temp.Substring(temp.Length - numOfDigits);
str = str.Remove(firstDigit) + temp;
}