110,538
社区成员
发帖
与我相关
我的任务
分享
private void btShow_Click(object sender, EventArgs e)
{
int currentNumber = 0;
string strTemp="";
for (int i = 0; i < number.Count; i++)
{
if (currentNumber + Convert.ToInt32(number[i]) > 32)
{
strTemp += data[i] + " " + Convert.ToString((36 - currentNumber)) + " ";
lbProShow.Items.Add(strTemp);
number[i] = Convert.ToInt32(number[i]) + currentNumber - 36;
while (Convert.ToInt32(number[i]) > 36)
{
strTemp += data[i] + " 36";
lbProShow.Items.Add(strTemp);
int intTemp = Convert.ToInt32(number[i]);
intTemp -= 36;
number[i] = intTemp;
}
strTemp = data[i] + " " + number[i].ToString() + " ";
currentNumber = Convert.ToInt32(number[i]);
}
else
{
strTemp += data[i] + " " + number[i] + " ";
}
}
lbProShow.Items.Add(strTemp);
}
private void Form1_Load(object sender, EventArgs e)
{
string[] listboxtext = new string[] { "A 30", "B 30", "A 20", "B 15 ", "A 5 ", "B 20 ", "A 120" }; //将list中读入数组
int k = 0; //保存读完上一条记录后的数值
string sl = "";
foreach (string s in listboxtext)
{
string n = s.Substring(0, 1); //读出A or B
int v = Convert.ToInt32(s.Substring(s.IndexOf(" ")).Trim()); //读出数字
if (k + v > 36) //如果够一行则输出
{
sl += n + " " + (36 - k).ToString() + " ";
listBox1.Items.Add(sl);
v = v + k - 36; //将多余的记录下来
while (v > 36) //为了分割一个超大数
{
sl = n + " 36";
listBox1.Items.Add(sl);
v -= 36;
}
sl = n + " " + (v).ToString() + " ";
k = v; //将多余出来的数记录下来
}
else //如果N行的数加起来不够36,就连续下去
{
sl += s + " ";
k += v;
}
}
listBox1.Items.Add(sl); //将最后一行(不够36)的打印出来.
}