禁用除滚动之外的DataGridView

时间:2012-10-05 16:39:38

标签: c# datagridview disabled-control

我如何配置datagridview,以便用户只能遍历行并使用滚动,而不是其他任何内容...... 如果我禁用网格,则不允许我使用滚动

4 个答案:

答案 0 :(得分:4)

将您的datagridview设置为只读,这将禁用所有编辑。

dataGridView1.ReadOnly = true;

在你的处理程序中,执行:

void dataGridView1_DoubleClick(object sender, EventArgs e)
{
     if (dataGridView1.ReadOnly == true)
          return;

     // .. whatever code you have in your handler...
}

即使用户双击网格,也不会发生任何事情。

答案 1 :(得分:1)

如OP评论所述:

dataGridView.ReadOnly = true;

在您正在处理的任何DataGridView事件中,检查ReadOnly属性,如果为true,则不要在事件中执行任何操作。

我查看了迭代行和列并禁用其中每一个的另一个选项,但Enabled不是行或列对象的属性。无论如何,迭代大量的项目都会很慢。

答案 2 :(得分:0)

吨。法布尔的回答对我不起作用。在我的情况下,我的数据网格的每一行都有按钮和可编辑的复选框,因此即使DataGrid在ReadOnly中也不会停用它们。但是,对我有用的(不禁用滚动)会禁用每一行,如下例所示:

<Style TargetType="{x:Type DataGridRow}" x:Key="MyDataGridRowStyle">
    <Style.Setters>
        <Setter Property="IsEnabled" Value="False"/>
    </Style.Setters>
</Style>

然后在DataGrid中:

<DataGrid ... RowStyle="{StaticResource MyDataGridRowStyle}">

希望有所帮助(对不起,如果只发布了XAML解决方案)!

答案 3 :(得分:0)

对我来说最好的解决方案,它禁用除滚动和调整单元格大小(imho最适合“只读表”)以外的所有功能:

a