假如我首先将一个dadagird DG1绑定了一个dataset
然后我想我的鼠标点击某一行,另外有textbox的数值就显示成那一行的数字
比如DG1显示
品名  规格   单价  数量  金额
polo  1.4    10000   1   10000
golf  1.6    12000   2   24000在DG1_Click()事件中点击polo一行
那textbox1=polo  textbox2=1.4 textbox3=10000  textbox4=1 textbox5=1000
最好还能另那一行深色显示
在vb中好像可以使用textmatrix在C#中怎么做呢?

解决方案 »

  1.   

    实际上你可以这样实现,就是:
    1.首先将datagrid的表格区域背景色设为白色,然后在datagrid的属性编辑器中加入模板列那textbox1、textbox2、 textbox3、  textbox4、 textbox5(注意要将文本框的边框去掉,也就是设置textbox的borderstyle属性为none),分别绑定数据库中字段:品名、规格、单价、数量、金额。
    2.鼠标所在行变色,支持分页:
    private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
    this.DataGrid1.CurrentPageIndex=e.NewPageIndex;
    this.SetBind();
    }
    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if (e.Item.ItemType ==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
    {
    e.Item.Attributes.Add("onmouseover","c=this.style.backgroundColor;this.style.backgroundColor='#CCFFFF'");
    e.Item.Attributes.Add("onmouseout","this.style.backgroundColor=c");
    }
    }
    3.以上实现的效果就是当鼠标停在某一行上时,这一行背景色变色,同时你会看到白色文本框输入区域。
      

  2.   

    别忘了在“窗体生成的代码”中加入下面代码:
    this.DataGrid1.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.DataGrid1_PageIndexChanged);
    this.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound);
    回答结束.祝好运,等接分了:)
      

  3.   

    this.textBox1.text=DG1[DG1.current.Row,columIndex].tostring().trim();
    this.textBox2.text........................
    ............3.........
      

  4.   

    this.textBox1.text=DG1[DG1.CurrentCell.RowNumber,0].ToString().Trim();
    this.textBox2.text=DG1[DG1.CurrentCell.RowNumber,1].ToString().Trim()
    this.textBox3.text=DG1[DG1.CurrentCell.RowNumber,2].ToString().Trim()
    this.textBox4.text=DG1[DG1.CurrentCell.RowNumber,3].ToString().Trim()