禁用DataGridView中除了滚动(Disable DataGridView except th

2019-08-01 05:14发布

如何配置一个DataGridView,这样用户可以通过该行只能移动和使用滚动,而不是其他...如果我禁用网格不允许我使用滚动

Answer 1:

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

dataGridView1.ReadOnly = true;

而你的内部处理,这样做:

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

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

即使对电网的用户双击,什么都不会发生。



Answer 2:

正如在OP评论讨论:

dataGridView.ReadOnly = true;

在里面你正在处理任何的DataGridView事件,检查只读属性,如果真的不做事件里的任何东西。

我看了看,通过行和列迭代和禁用每个人的另一种选择,但启用不是行或列对象的属性。 通过大量项目的迭代将是缓慢的,反正。



Answer 3:

T.法布尔回答没有为我工作。 就我而言,我有按钮和我的DataGrid的每一行可编辑的复选框,这样即使在DataGrid处于只读他们将不会被关闭。 然而,是什么为我所做的工作(没有禁用滚动)被禁用每一行就像这个例子:

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

然后在DataGrid:

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

希望帮助(抱歉,如果只是贴在XAML解决方案)!



文章来源: Disable DataGridView except the scroll