C# 如何将数字格式的文本框输入存储到列表中?
这是任务: 任务1-编写一个Windows应用程序,该应用程序接受任何数量的正数值,该数值由按钮输入。用户点击另一个按钮,随时处理所有输入的数据。结果输出应为: 第一次输出-输入的所有n个数字的总和 第二个输出-在listview上显示包含以下信息的两列- 第1列-输入的数字 第2列-每个数字占总数的百分比 到目前为止,我有:C# 如何将数字格式的文本框输入存储到列表中?,c#,arrays,C#,Arrays,这是任务: 任务1-编写一个Windows应用程序,该应用程序接受任何数量的正数值,该数值由按钮输入。用户点击另一个按钮,随时处理所有输入的数据。结果输出应为: 第一次输出-输入的所有n个数字的总和 第二个输出-在listview上显示包含以下信息的两列- 第1列-输入的数字 第2列-每个数字占总数的百分比 到目前为止,我有: { InitializeComponent(); } double number = 0, total = 0, numDisp
{
InitializeComponent();
}
double number = 0, total = 0, numDisplay;
string[] numbers;
private void button1_Click(object sender, EventArgs e)
{
{
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
number = double.Parse(textBox1.Text);
if (number > 0)
{
total += number;
textBox1.Text = number.ToString();
numDisplay = double.Parse(textBox1.Text);
textBox1.Clear();
}
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (Char.IsDigit(e.KeyChar) || Char.IsControl(e.KeyChar)) { }
else if (e.KeyChar == '.' && textBox1.Text.IndexOf(".") == -1) { }
else
{
e.Handled = true;
}
}
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void button1_Click_1(object sender, EventArgs e)
{
label1.Text = "sum: " + total.ToString();
}
}
基本上,我唯一需要完成的就是制作最后两列。。苏
考虑到我对这个项目完全陌生。。。
如何将输入到文本框中的数字存储起来,但在按下按钮时将其显示在列表视图中?我想储存任何数量的。。。这意味着列表将被循环
例如,如果我将1,2,3,4,5作为输入,我希望它在列表视图的第一列中显示为1-5,在我的第一列中向下,对于第二列,我希望数字占总和的百分比,所以在1-5的情况下,
1/15
1+2+3+4+5=15,
2/15,
3/15,
4/15,
5/15
始终按100更新:
这个问题不是很清楚。多亏了@Christofferette先生,我意识到,如果我们想输入一个数字,比如15 21 12 24等等,我会在什么时候输入,但OP的文本框有一个只允许输入数字的功能
这将是解决方案和建议,文本框的功能应该允许,退格和所有数字,提示是,我们需要分开数字,这样我们可以得到两位、三位或四位等数字,并应用
那么
如果你说出你迄今为止所做/尝试的事情,社区将更有可能帮助你。表明你已经做了一些努力,这会有很大帮助。提示,将double.Parse。。用try catch块捕捉非数字的解析错误。在levibotelho,我不知道从哪里开始。。说到理解数组,我简直不知所措。。我知道我应该使用数组,但我似乎找不到任何关于在listview@Christoffee-lette上存储或列出数字的信息是的,我转发了一篇旧文章,因为我希望社区能帮助我解决我的困境at@PechengChang下次试着把你的问题格式化,具体点,避免负面评论或否决票对于你的问题,如果我想把它放在listview工具上,我会怎么做呢。我不想把它放在标签上1.text.我的答案已经更新了。请检查。@spajce好吧,让我们从魔法数字15开始。。。每一个可能的输入的总和是15吗?很可能不是。thanx给了@Christofferette先生一些提示,因为OP并没有告诉你这个数字Di实际上希望子项除以总金额,这是怎么可能的
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar)
&& !char.IsDigit(e.KeyChar)
&& e.KeyChar != ',')
e.Handled = true;
}
private void button1_Click(object sender, EventArgs e)
{
listView1.Items.Clear();
var text = Regex.Split(textBox1.Text, @"\D+");
var t = text.Select(c => decimal.Parse(c)).Sum(); //<--Get all the total
foreach (var i in text)
{
ListViewItem item = new ListViewItem();
item.Text = i;
item.SubItems.Add(((decimal.Parse(i) / t) * 100).ToString());
listView1.Items.Add(item);
}
//decimal total = listView1.Items.Cast<ListViewItem>()
// .Select(c => decimal.Parse(c.SubItems[1].Text))
// .Sum();
//ListViewItem item2 = new ListViewItem();
//item2.Text = "Total:";
//item2.SubItems.Add(total.ToString("#,#0.00"));
//listView1.Items.Add(item2);
}