C# 将listview子项转换为double
我正在C#上创建一个进程调度计算器,我为输入创建了listviews 1,为调度本身创建了一个,但是当我开始编码FCFS调度部分时,我无法将突发时间子项转换为双倍,因此我可以添加等待时间。这里是代码的一些部分和表单的屏幕截图C# 将listview子项转换为double,c#,winforms,user-interface,listview,formatexception,C#,Winforms,User Interface,Listview,Formatexception,我正在C#上创建一个进程调度计算器,我为输入创建了listviews 1,为调度本身创建了一个,但是当我开始编码FCFS调度部分时,我无法将突发时间子项转换为双倍,因此我可以添加等待时间。这里是代码的一些部分和表单的屏幕截图 public void button1_Click(object sender, EventArgs e) { if (textBox1.Text == "" || textBox2.Text == "" || textBox3.Text == "")
public void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "" || textBox2.Text == "" || textBox3.Text == "")
{
MessageBox.Show("Insert the required in the boxes");
}
else
{
ListViewItem Process = new ListViewItem(textBox1.Text);
Process.SubItems.Add(textBox2.Text);
Process.SubItems.Add(textBox3.Text);
Process.SubItems.Add(textBox4.Text);
listView1.Items.Add(Process);
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
textBox4.Text = "";
}
}
private void button2_Click(object sender, EventArgs e)
{
double temp = 0;
//First Come First Served
if (comboBox1.Text == "FCFS")
{
for (int i = 0; i < listView1.Items.Count; i++)
{
ListViewItem WaitingTime = new ListViewItem(listView1.Items[i].Text);
//temp = Convert.ToDouble(listView2.Items[i].SubItems[0]) + Convert.ToDouble(listView2.Items[i + 1].SubItems[0]);
if (listView2.Items.Contains(WaitingTime))
{
WaitingTime.SubItems.Add(temp.ToString());
listView2.Items.Add(WaitingTime);
}
else
{
WaitingTime.SubItems.Add(temp.ToString());
listView2.Items.Add(WaitingTime);
}
}
}
//SJF Non-preemptive
if (comboBox1.Text == "SJF non-preemptive")
{
for (int i = 0; i < listView1.Items.Count; i++)
{
listView2.Items.Add(listView1.Items[i].Text);
}
}
}
public void按钮1\u单击(对象发送者,事件参数e)
{
如果(textBox1.Text==“”| | textBox2.Text==“”| | textBox3.Text==“”)
{
MessageBox.Show(“在框中插入所需内容”);
}
其他的
{
ListViewItem进程=新建ListViewItem(textBox1.Text);
Process.SubItems.Add(textBox2.Text);
Process.SubItems.Add(textBox3.Text);
Process.SubItems.Add(textBox4.Text);
listView1.Items.Add(流程);
textBox1.Text=“”;
textBox2.Text=“”;
textBox3.Text=“”;
textBox4.Text=“”;
}
}
私有无效按钮2\u单击(对象发送者,事件参数e)
{
双温=0;
//先到先得
如果(comboBox1.Text==“FCFS”)
{
对于(int i=0;i
我尝试了几次并搜索了几个表单,得到的只是FormatExpection。子项[0]将包含第一个子元素,它与项的文本相同,而且您无法将ListViewItem转换为文本。子项转换为文本,您需要使用Text属性 因此,您需要使用:
listView2.Items[i].SubItems[1].Text
在转换中,我还建议使用Double.TryParse而不是convert.ToDouble,速度更快,并且会告诉您是否已解析。您可能需要在
子项[0]
上调用.ToString()
,以便确保将字符串传递到convert.ToDouble()
。如果保存这两个子项[0].Text
字符串变量中的值首先,它们的值是多少?我尝试了这个方法,但没有用,仍然得到异常@dub@GusmanSystem.FormatException注意:您可以使用一个stationlistView1.Items.Add(新ListViewItem(新字符串[]{textBox1.Text,textBox2.Text,textBox3.Text,textBox4.Text})分配一行代码>下一个应该是listView2.Items[i]。子项[2]。Text
而不是listView2.Items[i+1]。子项[1]。Text
就像在OP中一样。解析确实有效,哇,我也无法很好地映射子项感谢您提供的信息,谢谢