标签: datagridviewcheckboxcell

选中/取消选中datagridview上的复选框

有人可以帮助我为什么它不起作用?我有一个checkbox,如果我点击它,这应取消选中datagridview中的所有复选框,这些复选框在包括用户选中复选框之前已经过检查.

这是代码:

        private void chkItems_CheckedChanged(object sender, EventArgs e)
        {
            foreach (DataGridViewRow row in datagridview1.Rows)
            {
                DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell)row.Cells[1];
                if (chk.Selected == true)
                {
                    chk.Selected = false;
                }
                else
                {
                    chk.Selected = true;
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

不应选中该复选框.应该检查.

这是添加的列

            DataGridViewCheckBoxColumn CheckboxColumn = new DataGridViewCheckBoxColumn();
            CheckBox chk = new CheckBox();
            CheckboxColumn.Width = 20;
            datagridview1.Columns.Add(CheckboxColumn);
Run Code Online (Sandbox Code Playgroud)

c# datagridview datagridviewcheckboxcell winforms

22
推荐指数
2
解决办法
19万
查看次数

如何验证是否已检查DataGridViewCheckBoxCell

我已将数据表绑定到a DataGridView,此数据表有一个名为"Status"的列,该列属于类型Boolean.我可以通过代码将值设置为true或者false正常.

但是,我无法弄清楚如何检查是否已经检查了给定的行.这是我试图使用的代码,并且编译它显示错误"指定的强制转换无效".

任何帮助,将不胜感激.

if (rowIndex >= 0)
{
    var cbxCell = (DataGridViewCheckBoxCell)dgvScan.Rows[rowIndex].Cells["Status"];

    if ((bool)cbxCell.Value)
    {
        // Do stuff
    }
    else
    {
        // Do other stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

c# datagridview datagridviewcheckboxcell winforms

11
推荐指数
3
解决办法
3万
查看次数

如何检查dataGridView checkBox是否被选中?

我是编程和C#语言的新手.我被卡住了,请帮忙.所以我编写了这段代码(c#Visual Studio 2012):

private void button2_Click(object sender, EventArgs e)
{
    foreach (DataGridViewRow row in dataGridView1.Rows)
    {
         if (row.Cells[1].Value == true)
         {
              // what I want to do
         }
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我收到以下错误:

运算符'=='不能应用于'object'和'bool'类型的操作数.

c# datagridviewcheckboxcell visual-studio-2012

11
推荐指数
3
解决办法
6万
查看次数

有没有办法让DataGridViewCheckBox单元更小?

如此问题中所述,如果您希望在DataGridViewCheckBoxCell中显示复选框,则DataGridView(WinForm而不是WPF)中行的最小行高似乎为17 .任何较小的复选框都会消失!

有没有办法在DataGridView单元格中放置一个较小的复选框?

datagridview datagridviewcheckboxcell winforms

8
推荐指数
1
解决办法
892
查看次数

检查后,DataGridView中的复选框不会更改其值

我在DataGridView的一个列中有复选框.

现在我遇到了一个问题:当我在Checkbox上单击一次时,它会发生变化但只是视觉上,在代码中它的值仍然设置为false.但是如果我点击Checkbox然后点击我的datagridview上的其他任何地方(或者在代码中手动更改其值为true),它会将其值更改为true.

如何在单击后强制我的复选框更改值?(检查复选框实际上没有检查它很烦人).

谢谢你的帮助.

c# datagridview datagridviewcheckboxcell winforms

7
推荐指数
1
解决办法
1万
查看次数

以编程方式循环访问DatagridView并选中复选框

我有DataGridView绑定数据表我有相同的复选框.

我想导航或循环遍历datagridview并选中标记这些复选框,下面是我使用的语法.

foreach(DataGridViewRow dr in dgvColumns.Rows)
{
    DataGridViewCheckBoxCell checkCell =
        (DataGridViewCheckBoxCell)dr.Cells["CheckBoxes"];
    checkCell.Value=1;
    //Also tried checkCell.Selected=true;
    //Nothing seems to have worked.!
}
Run Code Online (Sandbox Code Playgroud)

c# windows datagridviewcheckboxcell

6
推荐指数
2
解决办法
5万
查看次数

DataGridViewCheckBoxCell类型的DataGridView列始终是只读/禁用的

我正在使用.NET Windows窗体DataGridView,我需要编辑一个DataBound列(绑定在布尔DataTable列上).为此,我指定像这样的单元格模板:

DataGridViewColumn column = new DataGridViewColumn(new DataGridViewCheckBoxCell());

你看我需要一个CheckBox单元格模板.

我面临的问题是该列始终是只读/禁用的,就好像它是TextBox类型一样.它根本不显示复选框.

有关如何使用DataGridView的可编辑复选框列的任何想法?

更新:对于Windows窗体,请.

谢谢.

datagridview datagridviewcheckboxcell winforms

5
推荐指数
2
解决办法
3862
查看次数

DataGridView 更改复选框值后直接更新数据源

我有一个 System.Windows.Forms DataGridView 绑定到List<MyObject>.
MyObject 类包含绑定到 DataGridView 中的 DataGridViewCheckboxCell 的布尔属性。

public class MyObject
{
    public decimal DefaultValue {get; set; }
    public bool HasCustomValue {get;set; }
    public decimal CustomValue {get;set; }
    public decimal CurrentValue
    {
        get
        {
            return HasCustomValue
                ? CustomValue
                : DefaultValue;
        }
}
Run Code Online (Sandbox Code Playgroud)

如果我更改HasCustomValue另一个(只读)属性CurrentValue的值也会更改它的值。这是通过实现 INotifyPropertyChanged 事件来完成的(为了简单起见,我将该部分留在了源示例中)

如果我HasCustomValue从 DataGridView 外部更改,绑定到的列CurrentValue会立即更新。但是,如果用户启用/禁用复选框,HasCustomValue则不会在基础数据源中更改,除非他通过单击鼠标或按 TAB 键离开该列。

有没有办法在更改复选框值后强制网格直接更新数据源?

如果我绑定了一个控件属性,我可以设置为DataSourceUpdateModeWindows.Forms.DataSourceUpdateMode.OnPropertyChanged但我在 DataGridView 中没有找到类似的东西

.net c# datagridview datagridviewcheckboxcell winforms

5
推荐指数
1
解决办法
1万
查看次数

在DataGridView中发出检测复选框状态的问题

我在.Net应用程序中有一个DataGridView控件,其中包含一个复选框列.我希望用户能够编辑复选框.我遇到的问题是我在用户检查后无法检测到复选框的状态.

如果最初选中该复选框,则一旦DataGridViewCheckBoxCell获得焦点,它将立即返回.但是,如果我再次单击该复选框并取消选中它,则它仍然会返回选中状态.从那时起,它将始终返回检查,无论复选框的实际状态如何,直到它失去焦点并再次获得它.

同样,如果复选框最初未选中,那么当它获得焦点时,无论复选框的实际状态如何,它都将在click事件中返回未选中状态.

这是我的代码.

    Private Sub grdTemplates_CellContentClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles grdTemplates.CellContentClick
    Dim strValue As String = ""
    Try
        If Me.grdTemplates.Columns(e.ColumnIndex).Name = "colCurrentTemplate" Then
            'The user clicked on the checkbox column
            strValue = Me.grdTemplates.Item(e.ColumnIndex, e.RowIndex).Value

            'THIS VALUE NEVER CHANGES WHILE THE DataGridViewCheckBoxCell HAS FOCUS
            Me.lblTemplates.Text = strValue
        End If

    Catch ex As Exception
        HandleError(ex.ToString)
    End Try

End Sub
Run Code Online (Sandbox Code Playgroud)

提前致谢,

麦克风

vb.net datagridview datagridviewcheckboxcell

5
推荐指数
1
解决办法
5526
查看次数

DatagridView 复选框列始终为空

我有一个奇怪的问题。基本上我有一个 datagridview 和一个按钮。当我单击此按钮时,它会检查所有行的第 1 列值(复选框列)。然后它根据当前的情况将其设置为 true / false。

就这样吧。

但是,然后,我有另一个按钮可以对这些勾选的行执行某些操作。我单击它,它只将第一行标识为已勾选。其余的现在显然都无效了..?

那么,我如何以编程方式设置数据网格视图中复选框列的值,然后再次读取它,因为根据我的结果,我显然偏离了目标。

这会设置复选框,我可以看到它们,手动取消勾选它们等。

foreach (DataGridViewRow row in dgv.Rows)
        {
            var ch1 = new DataGridViewCheckBoxCell();
            ch1 = (DataGridViewCheckBoxCell)row.Cells[0];

            if (ch1.Value == null)
                ch1.Value = false;
            switch (ch1.Value.ToString())
            {
                case "True":
                    ch1.Value = false;
                    break;
                case "False":
                    ch1.Value = true;
                    break;
            }
        }
Run Code Online (Sandbox Code Playgroud)

然后检查值的下一个按钮就是查找空值

foreach (DataGridViewRow row in rows)
            {
                var ch1 = new DataGridViewCheckBoxCell();
                ch1 = (DataGridViewCheckBoxCell)row.Cells[0];

                if (ch1.Value == null)
                    ch1.Value = false;
                switch (ch1.Value.ToString())
                {
                    case "True":
                        ch1.Value = true; …
Run Code Online (Sandbox Code Playgroud)

c# datagridview datagridviewcheckboxcell

5
推荐指数
1
解决办法
4859
查看次数