2

如果符合如下规则,是否有隐藏某些按钮?下面是用于创建按钮列的代码和获取匹配项的代码。

我试过 BookButtonCell.Visible = false;,但它说它只是只读的。

谢谢。

 private void Form1_Load(object sender, EventArgs e)
     {          
            DataGridViewButtonColumn bookbutton = new DataGridViewButtonColumn();
            {
                bookbutton.HeaderText = "Book";
                bookbutton.Text = "Book";
                bookbutton.Name = "Book";
                bookbutton.UseColumnTextForButtonValue = true;
            }
            readalleventsdataGridView.Columns.Add(bookbutton); 


                int x = 0;
                foreach (DataGridViewRow gridRow in readalleventsdataGridView.Rows)
                {
                    DataGridViewCell BookButtonCell = gridRow.Cells["Book"];
                    DataGridViewCell EndDateCell = gridRow.Cells["EndDate"];
                    String StrTodayDate = DateTime.Now.ToString("dd/MM/yy");
                    DateTime TodayDate = Convert.ToDateTime(StrTodayDate);
                    String StrEndDate = EndDateCell.Value.ToString();
                    DateTime EndDate = Convert.ToDateTime(StrEndDate);
                    int result = DateTime.Compare(EndDate, TodayDate);
                    if (result < 0)
                        {
                          What Commands To Hide The Button?
                        }
                        x++;
                    }
        }
4

5 回答 5

2

DataGridViewButtonColumn Visible属性是只读属性。

即使它看起来像一个按钮,它仍然是一个DataGridViewButtonColumn,具有相同的可见性规则。因此,简而言之,您需要执行 Ravi 建议的操作或处理DataGridView.CellContentClick事件,测试按钮是否应该处于活动状态,如果不是,则吞下事件。

从上面的链接:

此属性指示单元格是位于其 Visible 属性设置为 false的还是列中。

于 2012-05-06T06:12:31.897 回答
1

您正在寻找.Visible可以设置为false.

于 2012-05-06T03:35:45.963 回答
1

没有visible其他人已经写过的财产。但是有一个简单的技巧,我今天发现并在同一主题的另一篇文章中给出了答案(另一个实际上是这个的副本):
https
://stackoverflow.com/a/29010384/2505186 摘要:为这些单元格
分配不同的值DataGridViewCellStyle,其中样式的padding属性 left 值设置为高于列宽的值。
这会导致按钮移出单元格的可见区域。:-)

于 2015-03-12T13:01:04.090 回答
0
yourButton.Visible=false, which will hide the button from displaying

你可以试试这样

 if (result < 0)
{
  BookButtonCell.Visible=false;
}

编辑:对于您的 Gridview,您可以在 Gridview 中检查此禁用按钮

于 2012-05-06T03:36:52.393 回答
0

如您所知,您无法更改 datagridview 单元格的可见性。

您必须禁用 row 或 column 。如果您在脑海中绘制它,您会发现如果gridviewcell 不可见,它看起来并不好看。

所以可见是datagridviewcell的只读属性使用此代码

DataGridViewButtonCell dgvbc = new DataGridViewButtonCell();
            dgvbc.ReadOnly = true;

另一种方法是将单元格的前景或背景更改为用户理解无法使用的颜色:)

至少使用此代码,您可以禁用按钮。

于 2012-05-06T06:21:06.247 回答