在datagridview中如何使用复选框作为单选按钮?

2024-02-08

IDE:Visual Studio c#、Winforms 应用程序。

我投入了大约12个小时,但没有取得成功。作为DataGridView不提供单选按钮类型的单元格。所以我尝试使用复选框单元格作为单选按钮功能。

即我只想选中一列中的一个复选框。

看图片:

这看起来很简单,但相信我,它并不像我们想象的那么简单。在回复之前请测试代码。

这是我尝试过的示例测试代码:

code 1

////start
if (e.RowIndex != -1)
{
    if (dataGridView1.Rows[e.RowIndex].Cells[0].Value != null && dataGridView1.CurrentCell.ColumnIndex == 0) //null check
    {
        if (e.ColumnIndex == 0)
        {
            if (((bool)dataGridView1.Rows[e.RowIndex].Cells[0].Value == true))
            {

                for (int k = 0; k <= 4; k++)
                {
                    //uncheck all other checkboxes but keep the current as checked
                   if (k == dataGridView1.CurrentRow.Index)
                    {
                        dataGridView1.Rows[k].Cells[0].Value = false;
                 }
                    //if (gvTeam1.Rows[k].Cells[2].Selected != null)
                    //if(k !=e.RowIndex)              

                }

                // gvTeam1.Rows[e.RowIndex].Cells[2].Value = false; // keep the current captain box checked
            }
        }
        //}


        // gvTeam1.Rows[rowPointerTeam1].Cells[2].Value = true;
    }
}
//end
// here gvTeam1 is Datagridview1

代码2: 在 datagridview1 上测试

private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
    if (dataGridView1.CurrentCell.ColumnIndex == 0)
    {
        for (int i = 0; i < 8; i++)
        {
            //if (i != dataGridView1.CurrentCell.RowIndex)
                dataGridView1.Rows[i].Cells[0].Value = false;              

        }
        dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[0].Value = true;
    }
}

    private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {
        //clean al rows
        foreach (DataGridViewRow row in dataGridView1.Rows)
        {
            row.Cells["Select"].Value = false;
        }

        //check select row
        dataGridView1.CurrentRow.Cells["Select"].Value = true;
     }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在datagridview中如何使用复选框作为单选按钮? 的相关文章

随机推荐

  • JavaScript 中的 Char 数组到 Int32

    我有一个 char 数组 data 和一个 Int32 dictIdFrame 我希望 dictIdFrame 采用 data i i 3 的 ASCII 0 255 值 我的意思是四个字节变成一个 int32 其中 data i 是不太重
  • android.util.Log 中的错误或功能? - Log.isLoggable(DEBUG) = false 但 Log.d() 未禁用

    更新 重新制定问题和标题 我一直认为昂贵的 android 日志记录方法可以通过询问日志记录是否像这样活跃来优化 import android util Log if Log isLoggable MyContext Log DEBUG L
  • 用于将条件数据复制到特定单元格的 VBA 宏

    我是 VBA 编程新手 我正在寻找从匹配条件的不同工作表中获取数据 然后从一个特定单元格复制并粘贴到另一个特定单元格 7 次 我的代码不起作用 我正在寻求改进它 当我运行代码时 我在 IF 语句开头被标记为运行时错误 1004 方法 对象范
  • Twitter 的 Bootstrap Datepicker 缺少 Glyphicons

    我正在尝试使用引导程序中的日期选择器 http eternicode github io bootstrap datepicker http eternicode github io bootstrap datepicker 并且一切正常
  • JNI 和构造函数

    我有一个已编译的库 需要在项目中使用 简而言之 它是一个用于与特定硬件交互的库 我拥有的是 a 和 dll 库文件 分别适用于 Linux 和 Windows 以及一堆 C h 头文件 其中包含其中描述的所有公共函数和类 问题是该项目需要使
  • 嵌入式Tomcat:如何配置请求线程数

    In 嵌入式Tomcat 我该如何配置请求线程数 我似乎无法让它发挥作用 我尝试了所有这些但没有成功 tomcat getConnector setProperty maxThreads 20 tomcat getConnector set
  • Python 中的裸词/新关键字

    我想看看是否可以定义新的关键字 或者 正如它们所称的那样销毁所有软件的 WAT 谈话 https www destroyallsoftware com talks wat当讨论 Ruby 时 用 Python 来讨论 我想出了一个在其他地方
  • C# 中的事件 - 定义和示例 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 事件发生在什么地方C 你能给我一个清
  • Haskell Parsec - 使用自定义令牌时错误消息的帮助不大

    我正在研究分离解析器的词法分析和解析阶段 经过一些测试后 我意识到当我使用 Parsecs Char 令牌之外的一些令牌时 错误消息的帮助不大 以下是使用 Char 令牌时 Parsec 错误消息的一些示例 ghci gt P parseT
  • 查找一周中的哪一天

    假设我在 R 中有一个日期 其格式如下 date 2012 02 01 2012 02 01 2012 02 02 R 中是否有任何方法可以添加另一列 其中包含与日期相关的星期几 数据集非常大 因此手动进行更改是没有意义的 df data
  • 计算文本文件中的行数

    我正在阅读文本文件中的行 我想知道这是否是一个好方法 我必须写这个函数numberoflines来减少number of lines variable加 1 是因为在 while 循环中 对于读取的每一行 它都会向 number of li
  • E/Volley:[194] BasicNetwork.performRequest:url 出现意外响应代码 307

    我试图在我的 Android 应用程序中通过 POST 将 json obj 通过 volley 发送到 api 并捕获 json 响应 但我不断收到此错误 E Volley 194 BasicNetwork performRequest
  • JavaFX:对话框内的TableView有重复的项目

    我的问题TableView及其物品 我创建了一个小Dialog窗口显示有关我的应用程序的警告 并在Dialog我有一个TableView单击按钮后会显示警告名称以及有关警告的一些信息 我创建了一个WarningUtil class Sing
  • 生成用于设置 Apple 推送通知的 .pem 文件

    我尝试并尝试生成 pem 文件 每次从客户帐户生成证书 然后使用终端生成 pem 文件 但它没有用 谁能给出一步一步的程序吗 要为您的 iOS 应用程序启用推送通知 您需要创建 Apple 推送通知证书 pem 文件 并将其上传给我们 以便
  • 从 C# COM dll 返回 S_FALSE

    我在 IDL 中定义了一个方法 如下所示 interface IMyFunc IDispatch id 1 helpstring method GetNextFunction HRESULT GetNextFunction in out l
  • 使用javascript隐藏文本框中的光标?

    如何使用 JavaScript 在 asp net 文本框中隐藏光标 我不想在文本框中看到闪烁的东西 Please不要这样做 你会破坏用户的期望 光标在那里是有原因的 当用户键入或点击删除 退格键等时 他们想知道它将发生在哪里 如果您想编辑
  • 将现有 pdf 添加到 fpdf

    有没有我可以调用的函数 以便将现有的 pdf 包含在我的fpdf file 例如 pdf gt AddPage from file example pdf 类似的东西 是否可以 fpdi 就是您正在寻找的 请参阅http www setas
  • CSS滚动条样式跨浏览器[重复]

    这个问题在这里已经有答案了 如何定义跨浏览器的 CSS 滚动条样式 我测试了这段代码 它只在 IE 和 Opera 中有效 但在 Chrome Safari 和 Firefox 中失败
  • 使用动态列和列名称进行逆透视

    我正在尝试取消透视具有大量列的表 其格式为 PID UID col1 col2 col3 下面的动态 SQL 将为我提供除列名之外的几乎所有内容 目标是使用逆透视值源自的列的名称填充 ID 字段 Build list of cols we
  • 在datagridview中如何使用复选框作为单选按钮?

    IDE Visual Studio c Winforms 应用程序 我投入了大约12个小时 但没有取得成功 作为DataGridView不提供单选按钮类型的单元格 所以我尝试使用复选框单元格作为单选按钮功能 即我只想选中一列中的一个复选框