需要动态设置datagridview里一列单元格的类型  如从linklabel 变成 textbox 、、、so what should i do?

解决方案 »

  1.   

    不知道你是想怎么个动态法,不过这个可以在前台用javascript来实现,但是具体怎么弄,还要看你到底想干嘛
      

  2.   

    楼上的方法不行 因为楼主是winform的,
      

  3.   

    就是吧  本来它是手动设置一列的linklabel 现在我需要用代码去把它修改成textbox 值当然不变
      

  4.   

    textbox txt = this.datagridview.cell.findcontroll["**"] as textbox;
      

  5.   

    我有个思路,你可以设置两列,一列是linklabel一列是textbox,用哪个,让哪个显示,你看行不行。
      

  6.   

    bs上有种是挂个textbox 鼠标点击的时候就把这个textbox移动过去 覆盖,赋值,
    cs的 可以借鉴不?
      

  7.   


    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;using System.Data.Odbc;namespace WinForm
    {
        public partial class frmReport : Form
        {
            public frmReport()
            {
                InitializeComponent();
            }        private void frmReport_Load(object sender, EventArgs e)
            {
                dataGridView1.DataSource = AddData();
            }        private DataTable AddData()
            {
                string strsql = "select * from navverchgrec";
                OdbcConnection conn = new OdbcConnection("Dsn=PostgreSQLTighten;");
                DataSet ds = new DataSet();            try
                {
                    conn.Open();
                    OdbcDataAdapter dat = new OdbcDataAdapter(strsql, conn);
                    dat.Fill(ds);                return ds.Tables[0];
                }
                catch (Exception)
                {
                    return null;
                }
                finally
                {
                    conn.Close();                dataGridView1.Columns["aaa"].Visible = false;
                }
            }        private void button1_Click(object sender, EventArgs e)
            {
                dataGridView1.Columns["aaa"].Visible = !dataGridView1.Columns["aaa"].Visible;
                dataGridView1.Columns["versionname"].Visible = !dataGridView1.Columns["versionname"].Visible;
            }
        }
    }我写了一个,你试试啊。反正效果出来了。