if ((string)table.Rows[0].Cells[0].Value == "I should be a button") {
// you can add formatting or values to the button before assigning it here
table.Rows[0].cells[0] = new DataGridViewButtonCell();
}
foreach (DataGridViewRow rowdata in gridviewCTRL.Rows)
{
// this is just an example in my case i am checking a previous column value
if (rowdata.Cells[5].Value=="XYZ")
{
rowdata.Cells[6] = new DataGridViewTextBoxCell();
}
}
8条答案
按热度按时间q43xntqr1#
我觉得艾利安的答案很接近了,试试这个.
u1ehiz5o2#
我认为最好的答案是:Hide gridview button。您需要做的就是在需要按钮的位置添加一个DataGridViewButtonCell,在不需要按钮的位置添加一个DataGridViewTextBoxCell。该列必须是DataGridViewButton类型。
b1zrtrql3#
在SO中看到这个类似的帖子,可能会有帮助
adding control to gridview
如果是成功表单,请查看此MSDN帖子
Column Types in the Windows Forms DataGridView Control
或者这个代码项目后...虽然它给出了添加一个图像按钮的例子
DataGridView Image Button Cell
@tmax在这种情况下,您可以将按钮创建代码放在
GridView_RowCreated
事件中,如下所示rur96b6h4#
试试这个。
im9ewurl5#
我最终做的是将一个DataGridView堆叠在另一个DataGridView之上。我关闭了边框、网格线和滚动条。然后创建动态按钮列以匹配只有一行按钮的主DataGridView。然后我使用ColumnWidthChanged事件处理程序一起调整两个DataGridView的大小。无论如何,这是我目前的解决方案。
w8f9ii696#
fcg9iug37#
将数据源分配给gridviewCTRL后,您可以使用下面的代码添加带有按钮的新列。
这将把按钮添加到定义列索引处的每一行。如果你想呈现条件AccessibleObject,那么你可以做类似下面的事情。
这样你就可以在Winforms c#中动态呈现/显示GridView中的控件。
上面的代码简单地用新单元格更新单元格。我们不能从单元格中删除按钮,也不能删除整个按钮,所以我们可以用一个新单元格的首字母来覆盖按钮的可见性。
xlpyo6sf8#
我不确定这是否有帮助,但您也可以考虑使用TableLayoutPanel。
参考:Winforms TableLayoutPanel adding rows programmatically