在listview中动态加载了几列数据,每列数据都是由小到大排列的。现在要实现的功能是,当修改其中一个数据的时候,要判断修改后的这个数据是不是在它的上一行数据和下一行数据的区间范围内。比如  第一列加载的数据分别为 1,3,5,9....当我把5修改成10的时候,就要提示输入超界。在线等,谢谢

解决方案 »

  1.   

    int index=listview1.SelectedItems[0].Index是你选中那项的Index
    listview1.Items[index+1]
    listview1.Items[index-1]
      

  2.   

    根据你选择的列 获取到Index;Item[Index+1];
    Item[Index-1];
      

  3.   

    int pre = -1;
    int nxt = -1;
    if(listView1.SelectedIndex>0)
        pre = listView1.Items[listView1.SelectedIndex-1].SubItems[x];if(listView1.SelectedIndex < listView1.Items.Count-1)
        nxt = listView1.Items[listView1.SelectedIndex+1].SubItems[x];int current = [from edit]if((pre != -1 && current<pre) || (nxt != -1 && current>nxt))
    {
        MessageBox.Show("Out of range.");
    }
    else
    {
        //提交
    }
      

  4.   

    个人看法
    int change = ?;//输入修改的数值
    int index=listview1.SelectedItems[0].Index
    if(index > 0 )//选择的可能是list的第一个孩子
    {
       int first = listview1.Items[index-1] ;
       int second = listview1.Items[index+1];
       if(first > change|| second < change)
         {
              MessageBox.Show("Over Range");
         }
    }else
    {
       int second = listview1.Items[index+1];
       if(second < change)
         {
              MessageBox.Show("Over Range");
         }
    }
      

  5.   

    private void button4_Click(object sender, EventArgs e)
            {
                int index = this.listView1.SelectedItems[0].Index;
                string str = this.listView1.SelectedItems[0].Text;            int value = 6;//你修改的值
                if(index == 0)
                {
                    if (value > Int32.Parse(this.listView1.Items[index + 1].Text))
                    {
                        MessageBox.Show("警告!");
                    }
                    else 
                    {
                        this.listView1.Items[index].Text = value.ToString();
                    }
                }
                else if (index == this.listView1.Items.Count - 1)
                {
                    if (value > Int32.Parse(this.listView1.Items[index - 1].Text))
                    {
                        MessageBox.Show("警告!");
                    }
                    else
                    {
                        this.listView1.Items[index].Text = value.ToString();
                    }
                }
                else
                {
                    if (value > Int32.Parse(this.listView1.Items[index - 1].Text) && 
                        value > Int32.Parse(this.listView1.Items[index + 1].Text))
                    {
                        MessageBox.Show("警告!");
                    }
                    else
                    {
                        this.listView1.Items[index].Text = value.ToString();
                    }
                }
            }