我正在使用C#2008 Windows窗体应用程序。
在我的项目中有一个TextBox
控件,我希望为样本s00自动生成数字,接下来当我再次回到形式时,它应该像s01,s02,s03一样增量... ......就像那样
请帮帮我
答案 0 :(得分:7)
非常简单。保留一个变量以保持当前的数字。
int incNumber = 0;
然后点击按钮,生成如下数字字符串:
string nyNumber = "s" + incNumber.ToString("00");
incNumber++;
答案 1 :(得分:4)
按照ØyvindKnobloch-Bråthen的建议进行操作,但如果您希望在表单 停用且已激活时自动完成(你回到表格并给予关注)然后你可以做这样的事情。
仅当您确定框中的文字始终采用上述格式时才会有效
this.Activated += (s, ev)=>{
string tmp = textbox1.Text;
int num = String.Substring(1) as int;
if(nuum != null)
{
num++;
textbox1.Text = "s" + num.Tostring();
}
};
答案 2 :(得分:2)
正如ØyvindKnobloch-Bråthen所说:使用变量跟踪整数。只有您应该像这样格式化(Microsoft首选):
int incNumber = 0;
string formattedIncNumber = String.Format("s{0:D2}", incNumber);
incNumber++;
或者如果你想用一行代码来做:
int incNumber = 0;
string formattedIncNumber = String.Format("s{0:D2}", incNumber++);
有关格式化整数的完整参考,请参阅MSDN。
答案 3 :(得分:2)
oyvind-knobloch-brathen的变化稍微好一些:
int incNumber=0;
s + String.Format("{0:00}", incNumber);
incNumber++;
// s00,s01,s02。如果您想要,例如,范围0001-9999,只需将“00”更改为“0000”等。
答案 4 :(得分:1)
如果字符串的文本组件未知(在字符串末尾有数字或没有数字),则此功能的变体可能会有所帮助:
private string increment_number_at_end_of_string(string text_with_number_at_the_end)
{
string text_without_number = text_with_number_at_the_end.TrimEnd('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
string just_the_number = text_with_number_at_the_end.Substring(text_without_number.Length);
int number = -1;
if (int.TryParse(just_the_number, out number))
{
return text_without_number + (number + 1).ToString();
}
return text_with_number_at_the_end;
}
答案 5 :(得分:0)
尝试此操作用于自动生成数字的数字和自动增量:
// Stock is table name
// metal id is unique number that is auto generated as well as auto incremented
private void textBox9_TextChanged(object sender, EventArgs e)
{
string s = "select max(metalid)+1 from stock";
SqlCommand csm = new SqlCommand(s, con);
con.Open();
csm.ExecuteNonQuery();
SqlDataReader dd = csm.ExecuteReader();
while (dd.Read())
{
int n = dd.GetInt32(0);
textBox1.Text = n.ToString();
}
con.Close();
}
答案 6 :(得分:0)
另一种单线方法是:
string sampleNum = "s" + (counter++).ToString("00");
计数器定义如下:
int counter= 0;
答案 7 :(得分:0)
这是C#中生成器自动递增id的解决方案,无需增加或执行任何操作。它将正常工作。每当创建新对象时,其值将增加1。
public class Employee
{
static long AutoId = 0;
public long Id { get; private set; } = ++AutoId;
public string EmployeeName { get; set; }
public string Address { get; set; }
}
答案 8 :(得分:-2)
{ try { //madhura// SqlCommand cmd1 = new SqlCommand(@"select 'Column_name'+ REPLACE(STR(MAX(CAST(Right(Column_name,5) as int)+1 ),6),SPACE(1),'0') as Column_name from TabelName ", con); SqlDataAdapter da = new SqlDataAdapter(cmd1); DataTable dt = new DataTable(); da.Fill(dt);
if(dt.Rows [0] [“Column_name'”]。ToString()== null){Label1.Text =“DMBP-000001”; } else {Label.Text = dt.Rows [0] [“Column_name'”]。ToString(); }} catch {}}