我正在为学校练习编写代码,我有以下代码:
private void button1_Click(object sender, EventArgs e)
{
List<int> lista = new List<int>();
int delivi = 0;
int brojac = 0;
listBox1.BeginUpdate();
foreach (string s in listBox1.Items)
{
int broj = int.Parse(s);
int delenje_so = int.Parse(textBox1.Text);
if ((broj % delenje_so) == 0)
{
lista.Add(brojac);
delivi++;
}
brojac++;
}
for (int i = 0; i < lista.Count; i++)
{
//listBox1.SetSelected(lista[i], true);
MessageBox.Show(lista[i].ToString());
}
listBox1.EndUpdate();
label1.Text = delivi.ToString();
}
基本上,我有ListBox
,Button
,TextBox
和Label
。我在ListBox
中有一些项目,我必须检查这些项目(ints
)是否可以除以TextBox
中的数字。然后选择ListBox
中可以分割的所有项目,并输出可以在Label
中划分的总数量。
除了ListBox
不会选择分割的项目这一事实外,我的代码中的所有内容都有效。
我尝试在我执行检查的同一个foreach
循环中进行更新,但是我收到错误,列表已被修改且无法继续。所以我做了不同的循环,但由于某种原因没有发生任何事情。
答案 0 :(得分:0)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace SOFAcrobatics
{
public partial class Dividers : Form
{
public Dividers()
{
InitializeComponent();
this.listBox1.SelectionMode = SelectionMode.MultiSimple;
for (Int32 i = 1 ; i <= 30 ; i++)
{
this.listBox1.Items.Add(i);
}
}
private void button1_Click(object sender, EventArgs e)
{
Int32 n = Int32.Parse(this.textBox1.Text);
List<Int32> indexes = new List<Int32> ();
Int32 counter = 0;
for (Int32 i = 0 ; i < this.listBox1.Items.Count ; i++)
{
if ((((Int32)this.listBox1.Items[i]) % n) == 0)
{
indexes.Add(i);
}
}
for (Int32 i = 0 ; i < indexes.Count ; i++)
{
this.listBox1.SetSelected(indexes[i], true);
}
this.label1.Text = (indexes.Count + 1).ToString();
}
}
}