我的You can turn off this, in config, example:
<?xml version="1.0" encoding="UTF-8" ?>
<phpunit bootstrap="application/tests/bootstrap.php" backupGlobals="false">
<testsuites>
<testsuite name="TestSuite">
<directory>application/tests</directory>
</testsuite>
</testsuites>
</phpunit>
中有DataGridViewButtonCell
,我想将属性DataGridView
设置为 True 。
我试过了:
Visible
不幸的是,它说属性DataGridView1.Rows("number of row i want").Cells("number of cell i want").Visible = True
是visible
。
以下是代码:
read only
有谁知道我怎么做到这一点?
感谢。
答案 0 :(得分:1)
这确实是一个透视问题。从程序员的角度来看,简单地忽略按钮点击我想要禁用的按钮非常容易,并且只需几行代码。
从用户角度来看,这种情况会像这样......用户点击看似有效的启用按钮,没有任何反应。用户没有为此编写代码...所以用户最多会认为计算机没有响应按钮点击或最坏情况...会认为你的编码技巧是可疑的!
如果按钮丢失,也会出现同样的情况。用户不会知道它为什么会丢失......但很可能会出现与上述非工作按钮相同的结论。
在另一个非常简单的方法中,假设所有按钮都已启用,我们有一个我们要禁用的按钮索引列表。用户按下其中一个按钮,我们检查禁用的按钮列表,如果单击的按钮是禁用的按钮,只需显示一个消息框以指示禁用此按钮的原因。这种方法告诉用户......“这里有一堆按钮,猜猜哪些按钮已启用”......
DataGridViewDisableButtonCell
和DataGridViewDisableButtonColumn
包装器解决了上述所有问题...按钮是可见的,因此如果您将按钮设置为不可见并且显示为灰色,则用户不会问按钮的位置。 “灰色”是大多数用户理解的东西,并且将使用户不必“猜测”启用了哪些按钮。
您可以为两个类创建一个包装器:DataGridViewButtonCell和DataGridViewButtonColumn。
MS示例的链接How to: Disable Buttons in a Button Column in the Windows Forms DataGridView Control是我在使用C#之前使用的链接,但链接上也有一个VB实现。
下面是使用MS链接中描述的两个包装器的结果的图片。为了进行测试,下面的图片使用按钮左侧的复选框来禁用右侧的按钮。
恕我直言,使用此策略是用户友好的。如果您只是使按钮不可见或只读,那么用户可能会认为您的代码搞砸了,并且没有清楚地了解为什么按钮丢失或不起作用。禁用按钮向用户指示该按钮不适用于该项目。一个选项是让鼠标滚动指示按钮被禁用的原因。
https://developer.android.com/training/system-ui/status.html
答案 1 :(得分:0)
没有实际隐藏DataGridViewButtonCell
的方法。目前我只能看到两个选项:
Cell
设置为DataGridViewTextBoxCell
并将ReadOnly
属性设置为 True 使用Padding
:
Private Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick
If DataGridView1.Rows(e.RowIndex).Cells(6).GetType() Is GetType(DataGridViewButtonCell) Then
Dim columnWidth As Integer = DataGridView1.Columns(e.ColumnIndex).Width
Dim newDataGridViewCellStyle As New DataGridViewCellStyle With {.Padding = New Padding(columnWidth + 1, 0, 0, 0)}
DataGridView1.Rows(e.RowIndex).Cells(6).Style = newDataGridViewCellStyle
End If
End Sub
使用DataGridViewTextBoxCell
:
Private Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick
If DataGridView1.Rows(e.RowIndex).Cells(6).GetType() Is GetType(DataGridViewButtonCell) Then
Dim newDataGridViewCell As New DataGridViewTextBoxCell
DataGridView1.Rows(e.RowIndex).Cells(6) = newDataGridViewCell
newDataGridViewCell.ReadOnly = True
End If
End Sub
这两个都应该为您提供不显示按钮的效果。