比如我的listview有字段:   ID      name       desc
数据:   100     主机       机箱内的硬件组合我想双击这一行数据,后链结出另一个form2,form2中有textBox1显示“100”,textBox2显示“主机”,richtextBox1显示“机箱内的硬件组合”?请问怎么编程实现啊?

解决方案 »

  1.   

    在listView的SelectedIndexChanged事件中创建新窗体,然后把
    this.myListView.SelectedItems[0].SubItems[0].Text;100 
    this.myListView.SelectedItems[0].SubItems[1].Text; 主机
    this.myListView.SelectedItems[0].SubItems[2].Text;机箱内的硬件组合
    传给新窗体。
      

  2.   

    private void listview_SelectedIndexChanged(object sender, System.EventArgs e)
    {
          form2 dataform = new form2();
          dataform.Show();
          dataform.textBox1.Text = this.myListView.SelectedItems[0].SubItems[0].Text;
          dataform.textBox2.Text = this.myListView.SelectedItems[0].SubItems[1].Text;
          dataform.richtextBox1.Text = this.myListView.SelectedItems[0].SubItems[2].Text;
    }
      

  3.   

    /// <summary>
    /// 作者:  美迪斯--从不受伤痕的身体
    /// 说明:  初始化ListView的列标题和子行
    /// 参数1: System.Windows.Forms.ListView : ListView实际对象.
    /// 参数5: int[] lsvWidth
    /// </summary>
    public static void initListViewTol(System.Windows.Forms.ListView lsv,string[] lvArray,int[] lsvWidth)
    {
    for(int j = 0;j<lvArray.Length;j++)
    {
    lsv.Columns.Add(lvArray[j].Trim(),lsvWidth[j], HorizontalAlignment.Left);
    }
    string[] ddd = new string[2];
    for(int t = 0;t<38;t++)
    {
    ddd[0] = "";
    ddd[1] = "";
    lsv.Items.Insert(t,new ListViewItem(ddd));
    }
    }
    /// <summary>
    /// 作者:  星矢--天马小英雄
    /// 说明:  初始化ListView的列标题和子行
    /// 参数1: System.Windows.Forms.ListView : ListView实际对象.
    /// 参数2: string[] lvArray : ListView上列的值.
    /// 参数3: System.Data.DataSet dsT :DataSet对象用来遍历数据库的行
    /// 参数4: string lsTable :要绑定的表的名字
    /// 参数5: int[] lsvWidth
    /// </summary>
    public static void initListView(System.Windows.Forms.ListView lsv,string[] lvArray,System.Data.DataSet dsT,string lsTable,int[] lsvWidth)
    {
    //开始更新
    lsv.BeginUpdate();
    for(int j = 0;j<lvArray.Length;j++)
    {
    //添加ListView的列
    lsv.Columns.Add(lvArray[j].Trim(),lsvWidth[j], HorizontalAlignment.Left);
    //lsv.Columns[j].Width = 20;
    }

    for(int i=0;i<dsT.Tables[lsTable].Rows.Count;i++)
    {
    string[] dsCollection = new string[19];
    for(int k = 0;k<dsT.Tables[lsTable].Columns.Count;k++)
    {
    //添加列下的行
    dsCollection[k] = dsT.Tables[lsTable].Rows[i].ItemArray[k].ToString();

    }
    lsv.Items.Insert(i,new ListViewItem(dsCollection));
    }
    //结束更新
    lsv.FullRowSelect = true;
    lsv.EndUpdate();
    dsT.Dispose();
    } /// <summary>
    /// 初始化ListView行&列,纵向
    /// 参数1: ListView lsvt:ListView对象
    /// 参数2: string lvTable 表名
    /// 参数3: string[] Text 字段名
    /// 参数4  DataSet dsS DataSet值
    /// 作者: 冰河--白鸟,冰源战士
    /// </summary>
    public static void initColumns(ListView lsvt,/*string[] ListColumns,int[] lsvtWidth,*/string lvTable,string[] Text,DataSet dsS)
    {
    lsvt.BeginUpdate();
    for(int i=0;i<dsS.Tables[lvTable].Columns.Count;i++)
    {
    string[] dsRow = new string[19];
    dsRow[0] = Text[i];
    dsRow[1] = dsS.Tables[lvTable].Rows[0].ItemArray[i].ToString();
    lsvt.Items.Insert(i,new ListViewItem(dsRow));
    }
    lsvt.FullRowSelect = false;
    lsvt.CheckBoxes = false;
    lsvt.EndUpdate();
    dsS.Dispose();

    }
    /// <summary>
    /// 修改ListView行上的列值(指定列)
    /// 参数1: ListView lsvt: ListView对象
    /// 参数2: 表名
    /// 参数3: 1列的行值
    /// 参数4: DataSet对象
    /// 作者: 星矢2-伤痕--男子汉的勋章
    /// </summary>
    public static void updateListView(ListView lsvt,string lvTable,string[] Text,DataSet dsS)
    {
    for(int i=0;i<dsS.Tables[lvTable].Columns.Count;i++)
    {
    string bbb = dsS.Tables[lvTable].Rows[0].ItemArray[i].ToString();
    lsvt.Items[i].SubItems[0].Text = Text[i];
    lsvt.Items[i].SubItems[1].Text = dsS.Tables[lvTable].Rows[0].ItemArray[i].ToString();
    }
    dsS.Dispose();
    } /// <summary>
    /// 修改ListView行上的列值(指定列)
    /// 参数1: ListView lsvMo: ListView对象
    /// 参数2: string[] strMo: 要修改的值
    /// 作者: 邪武-独角兽速拳
    /// </summary>
    public static void Modifiy(ListView lsvMo,string[] strMo)
    {

    lsvMo.SelectedItems[0].SubItems[0].Text = strMo[0];
    lsvMo.SelectedItems[0].SubItems[1].Text = strMo[1];
    lsvMo.SelectedItems[0].SubItems[3].Text = strMo[2];
    } /// <summary>
    /// 修改ListView行上的列值
    /// 参数1: ListView lsvMo: ListView对象
    /// 参数2: string[] strMo: 要修改的值
    /// 作者: 紫龙--情谊之最
    /// </summary>
    public static void Modifiys(ListView lsvMo,string[] strMo)
    {
    for(int i = 0;i<strMo.Length;i++)
    {
    lsvMo.SelectedItems[0].SubItems[i].Text = strMo[i];
    }
    } /// <summary>
    /// 添加ListView行,只添加一行
    /// 参数1: ListView lst 传入ListView的对象
    /// 参数2: string[] addRow 要添加行的列值
    /// 参数2: int itemNumber 要添加行的位置
    /// 作者: 一辉--死亡皇后岛上的圣斗士
    /// </summary>
    public static void addListViewRow(ListView lst,string[] addRow,int itemNumber)
    {
    lst.Items.Insert(itemNumber,new ListViewItem(addRow));
    //lsvAdd.Items[itemNumber].ImageIndex = 0;
    }


    /// <summary>
    /// 返回ListView中选中的信息
    /// 参数: 传入ListView的对象
    /// 作者: 加隆--幕后的操纵者
    /// </summary>
    public static string[] ListViewValues(System.Windows.Forms.ListView ls)
    {
    lvName = ls.Name; //名字
    string[] LitValue = new string[19]; //动态分配数组大小
    if(ls.SelectedItems.Count>0)
    {
    //Columns
    for(int i = 0 ;i<ls.SelectedItems[0].SubItems.Count;i++)
    {  
    LitValue[i] = ls.SelectedItems[0].SubItems[i].Text;
    }
    }
    return LitValue;
    }
      

  4.   

    /// <summary>
    /// ListView中选中的信息向下移动
    /// 参数: 传入ListView的对象
    /// 作者: 沙加--最接近神的男人
    /// </summary>
    public static void RowNext(ListView lvsNext)
    {
    if(lvsNext .SelectedItems !=null&&lvsNext.SelectedIndices .Count >0)
    {
    int i = lvsNext.SelectedIndices[0];
    if(i == lvsNext.Items.Count-1)
    {
    lvsNext.Items[i].Selected = true;
    lvsNext.Focus();
    }
    else if(i+1 <lvsNext.Items.Count)
    {

    lvsNext.Items[i+1].Selected = true;
    lvsNext.Focus();
    }
    }
    } /// <summary>
    /// ListView中选中的信息向上移动
    /// 参数: 传入ListView的对象
    /// 作者: 撒加--神的化身
    /// </summary>
    public static void RowPrevious(ListView lvsPrevious)
    {
    if(lvsPrevious .SelectedItems !=null&&lvsPrevious.SelectedIndices .Count >0)
    {
    int i = lvsPrevious.SelectedIndices[0];
    if(i == 0)
    {
    lvsPrevious.Items[i].Selected = true;
    lvsPrevious.Focus();
    }
    else if(i > 0)
    {
    lvsPrevious.Items[i-1].Selected = true;
    lvsPrevious.Focus();
    }
    }
    } /// <summary>
    /// 显示ListView中的信息在第一行
    /// 参数: 传入ListView的对象
    /// 作者: 穆先生--和蔼的白羊座
    /// </summary>
    public static void RowFirst(ListView lvslsvFirst)
    {
    lvslsvFirst.Items[0].Selected = true;
    lvslsvFirst.Focus();
    } /// <summary>
    /// 显示ListView中的信息在最后一行
    /// 参数: 传入ListView的对象
    /// 作者: 修罗--伟大的圣剑
    /// </summary>
    public static void RowLast(ListView lvsLast)
    {
    lvsLast.Items[lvsLast.Items.Count-1].Selected = true;
    lvsLast.Focus();
    } /// <summary>
    /// ListView中选中的信息保持状态
    /// 参数: 传入ListView的对象
    /// 作者: 沙加--最接近神的男人
    /// </summary>
    public static void RowKeep(ListView lvsKeep)
    {
    if(lvsKeep .SelectedItems !=null&&lvsKeep.SelectedIndices .Count >0)
    {
    int i = lvsKeep.SelectedIndices[0];
    if(i <lvsKeep.Items.Count)
    {
    lvsKeep.Items[i].Selected = true;
    lvsKeep.Focus();
    }
    }
    } /// <summary>
    /// ListView中选中的信息不被选中
    /// 参数: 传入ListView的对象
    /// 作者: 艾尔扎克--俄罗斯冰神拳
    /// </summary>
    public static void RowFalse(ListView lvsFalse)
    {
    if(/*lvsFalse .SelectedItems !=null&&*/lvsFalse.SelectedIndices.Count >0)
    {
    int i = lvsFalse.SelectedIndices[0];

    lvsFalse.Items[i].Selected = false;
    }
    }
      

  5.   

    字段:   ID      name       desc
    数据:   100     主机       机箱内的硬件组合我想双击这一行数据,后链结出另一个form2,form2中有textBox1显示“100”,textBox2显示“主机”,richtextBox1显示“机箱内的硬件组合”?再双击事件中可以提取出选定行.
    this.listView1.SelectedItems[0].Text //取出ID字段
    this.listView1.SelectedItems[0].SubItems[1].Text //取出name字段
    this.listView1.SelectedItems[0].SubItems[2].Text //取出desc字段
      

  6.   

    链接Form2
      再双击事件中可以提取出选定行.
    this.listView1.SelectedItems[0].Text //取出ID字段
    this.listView1.SelectedItems[0].SubItems[1].Text //取出name字段
    this.listView1.SelectedItems[0].SubItems[2].Text //取出desc字段
      
      Form2 form2 = new Form2();
      from2.tempID = this.listView1.SelectedItems[0].Text;
      from2.showDialog(this);在Form2中可以建立 public string tempID;
      

  7.   

    this.listView1.SelectedItems[0].Text 
    this.listView1.SelectedItems[0].SubItems[1].Text 
    this.listView1.SelectedItems[0].SubItems[2].Text 
      
      Form2 form2 = new Form2();
      from2.tempID = this.listView1.SelectedItems[0].Text;
      from2.showDialog(this);在Form2中可以建立 public string tempID;
    使用公共变量
      

  8.   

    不可访问“WindowsApplication1.Form5.richTextBox1”,因为它受保护级别限制
    不可访问“WindowsApplication1.Form5.textBox1”,因为它受保护级别限制
    不可访问“WindowsApplication1.Form5.textBox2”,因为它受保护级别限制
    为什么啊?