我是在winforms中拖了1个dataGirdView 然后自定义了1个DataTable dt=new DataTable();dt.column.add("图书编号",typeof(string));
dt.column.add("图书名称",typeof(string));
.
.
.但是我现在想把最后一列做成象 asp.net项目里的HyperLinker列一样 是1个"查看封面" 标签   然后我点"查看封面" 就跳出1个新的窗口 我要在这个窗口里显示该行图书的封面图片 请问该怎么实现问题的关键是: 1.如何把这个列加上去 是在dt里+ 还是在dataGirdView里+ 怎么+上去呢???
            2. 如何实现点击事件 代码怎么写? 
            3.如何获取点中行的图书编号  也就是说怎么知道他点击的是第几行的"查看封面"?因为我要根据图书的编号去调图片的答对1个问题给33.333333333333333333...分 @^-^@ 请前辈门赐教

解决方案 »

  1.   

    1.通过给DataGridView添加一个Button列来实现,类型为:DataGridViewButtonColumn
    设置它的Text属性为:"查看封面",并且UseColumnTextForButtonValue属性为True.2.通过CellContentClick事件:private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
            {
                //判断单击是否为按钮列
                if (e.ColumnIndex == 1)
                {
                    //取得当前行第0个单元格的值
                    MessageBox.Show(dataGridView1.CurrentRow.Cells[0].Value.ToString());
                }
            }3.看上面示例代码:dataGridView1.CurrentRow.Cells[0].Value//假设图书编号在第一列
      

  2.   

    给DataGridView添加一列,类型为DataGridViewLinkColumn即可1.如何把这个列加上去 是在dt里+ 还是在dataGirdView里+ 怎么+上去呢??? 
    ==
    都可以,在界面,点击DataGridView的智能标记--添加列--选择类型为DataGridViewLinkColumn即可
      

  3.   

    2. 如何实现点击事件 代码怎么写? 
    3.如何获取点中行的图书编号  也就是说怎么知道他点击的是第几行的"查看封面"?因为我要根据图书的编号去调图片的         private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
            {
                if (e.ColumnIndex == 0 && e.RowIndex != -1 && !dataGridView1.Rows[e.RowIndex].IsNewRow)
                {
                    string id= dataGridView1.Rows[e.RowIndex].Cells["id"].Value.ToString();
                    FrmAddModify frmAddModify = new FrmAddModify(id);//将id作为参数传入
                    frmAddModify.ShowDialog(this);
                }
            }