winform中的dataGridView后台动态绑定按钮,并可以清空按钮

目前后面操作列中的两个按钮是在后台通过

此方法实现的,目前想做的是点击图中的“已读留言”按钮,dataGridView重新绑定数据而且操作列中的按钮会变,我用
dataGridView.Rows.Clear();
dataGridView.Controls.Clear();数据列清空了,按钮列无法清除,请问各位大侠该如何实现,而且怎么给这按钮绑定数据的id,实现按钮的后台操作功能

    Button无法清除?

    你的清空是这样的

    dataGridView.Rows.Clear();

    dataGridView.Controls.Clear();

    你的按钮在dataGridview容器里,所以要在容器里删除.

    你button并没有绑定Id,所以无法通过Id删除,那么通过名称删除.

     private void DeleteLabel(string cName)//根据控件Name删除控件
            {
                foreach (Control c in dataGridview2.Controls)
                {
                    if (c.Name == cName)
                    {
                        Controls.Remove(c);
                        break;
                    }
                }
            }

    只需要输入你的button.Text就可以了.

    button怎么绑定数据Id?

    在动态创建button时,给btn[0]设置一个Tag属性

    写 btn[0].Tag = "数据Id";//object类型

    读 btn[0].Tag.String();

追问

this.dgvInfo.Controls.Add(btn[0]);this.dgvInfo.Controls.Add(btn[1]);其中dgvInfo是dataGridView,我现在是这样写的:for (int i = 0; i < _noreadnum; i++){dgvInfo.Controls.Clear();}
现在只有两行的话,按钮会清空不掉,多行的话,点击操作按钮是没问题的

追答

没看懂你这次的追问
我看你代码上写着是 dataGridview2.Controls.Add(btn[0]);
你为什么说是this.dgvInfo.Controls.Add(btn[0]);

对了 还要提醒你一下,一个窗体内显示的控件数,不要太多.5,6十个后窗体加载就会感到卡

温馨提示:内容为网友见解,仅供参考
无其他回答

winform中的dataGridView后台动态绑定按钮,并可以清空按钮
你的按钮在dataGridview容器里,所以要在容器里删除.你button并没有绑定Id,所以无法通过Id删除,那么通过名称删除.private void DeleteLabel(string cName)\/\/根据控件Name删除控件 { foreach (Control c in dataGridview2.Controls) { if (c.Name == cName) { Controls.Remove(c); ...

C#中的winform 程序怎样在datagridview 动态添加按钮行
我今天也正好用到这个功能,把代码给你,你看看吧。DataTable dtcom = new DataTable();dtcom.Columns.Add("Value",typeof(string));dtcom.Columns.Add("Name",typeof(string));DataRow drSex;drSex = dtcom.NewRow();drSex[0]= "1";drSex[1]= "a";dtcom.Rows.Add(drSex);drSex...

C# winform中给datagridview的每一行添加多个按钮?
选中dataGridView,然后点击右上方的小箭头,在弹出的对话框中选择“添加列”,在“添加列”的对话框中再次选择“Type类型”为“DataGridViewButtonColumn”。要添加几个点击几次确定。到时候绑定数据就可以见分晓了。

winform里面 怎么才能让dataGridview重新绑定?
这个好办啊,在删除或者修改结束后调用一下DataGridview的绑定方法不就行了!例如:private void btnDelete_Click(object sender, EventArgs e){ try { string str = "";if (this.selectList.Count > 0){ string massage = "确定要删除这" + this.selectList.Count + "条信息吗?";if (Messag...

C#winform中给datagridview的每一行添加按钮
public Form1(){ InitializeComponent();this.Load += new EventHandler(Form1_Load);} List<string> strSourec = new List<string> { "1", "2" };void Form1_Load(object sender, EventArgs e){ foreach (string item in strSourec){ DataGridViewButtonColumn Column1 = new DataGridView...

c# winform datagridview界面上的行删了,但datagridview数据源没有同步...
这样一定会报错的,因为datagridview在绑定了数据源之后是不允许再直接对行或列进行删除、新增的操作,它会认为你在非法修改数据源。(一般这样的操作只适用于逐条去赋值的datagridview)所以这里想要实现你想要的结果,只有去修改数据源,即(DataTable)datagridview1.DataSource,然后再重新绑定DataSource,即...

C# winform的datagridview中怎样实现绑定链接的列(点击绑定连接列的任...
2.绑定DataGridView private void Bind(){ DataTable dt = new DataTable();dt.Columns.Add("11", typeof(string));DataRow dr = dt.NewRow();dr[0] = "http:\/\/www.sina.com.cn";dt.Rows.Add(dr);dataGridView1.Columns[0].DataPropertyName = "11";dataGridView1.DataSource = dt...

c#winform 多线程绑定datagridview会造成假死,滚动条无法滚动,用委托怎 ...
\/\/ this是窗体,可以改\/\/ 必须在另一个线程执行,在主线程执行会死机this.Invoke(new Action(delegate{\/\/绑定datagridview代码}));

C#中datagridview手动绑定数据后怎么编辑列?
这样搞定: this.datagridview1.Columns[1].Visible = false;或者这样:this.datagridview1.Columns["userID"].Visible = false;不想让哪一列显示就更改哪一列的Visible属性值为false即可!(列的标示可以用下标,也可以用数据库查出数据时的列名)另外你说HeaderText属性,WinForm里的DataGradView当然有...

winform datagridview编辑一行
思路是这样的,你打开的时候把datagridview为只读,其中下来框的也是可以绑定数据的,点编辑按钮的时候这行改为可写。然后点击保存的时候保存该行数据。我写过这种动态绑定数据和编辑数据的。

相似回答