dataGridView某一单元格(cell)转换类型

 dataGridView的单元格类型是以其所在的列的类型统一的,也就是某一列是TextBox则这一列里的所有单元格(cell)都是TextBox类型的。

在编程时遇到问题:需要改变dataGridView中某一个单元格的类型,使其不受列类型的制约(比如说单元格所在的列定义的是DataGridViewTextBoxColumn,可是想把这一列中某几个单元格换成checkbox),这网上找了很长时间都没有结果,甚至有人认为这个单元格上的空间是画上去的,要改变就要重新把空间画出来!

解决办法:经过公司同事的共同研究,发现这个cell类型还是可以很简单的变化的。方法如下:

dataGridView1.Rows[0].Cells[1] = new DataGridViewCheckBoxCell();

哈哈,问题解决了,很简单!

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
以下是一个简单的实现代码示例: ```csharp private void ConvertToHex_Click(object sender, EventArgs e) { foreach (DataGridViewRow row in dataGridView1.Rows) { foreach (DataGridViewCell cell in row.Cells) { if (cell.Value != null) { string hexValue = BitConverter.ToString(Encoding.Default.GetBytes(cell.Value.ToString())).Replace("-", ""); cell.Value = hexValue; } } } } private void ConvertToString_Click(object sender, EventArgs e) { foreach (DataGridViewRow row in dataGridView1.Rows) { foreach (DataGridViewCell cell in row.Cells) { if (cell.Value != null) { string stringValue = Encoding.Default.GetString(StringToByteArray(cell.Value.ToString())); cell.Value = stringValue; } } } } private byte[] StringToByteArray(string hex) { int length = hex.Length; byte[] bytes = new byte[length / 2]; for (int i = 0; i < length; i += 2) { bytes[i / 2] = Convert.ToByte(hex.Substring(i, 2), 16); } return bytes; } ``` 在这个示例中,我们定义了两个按钮 `ConvertToHex` 和 `ConvertToString`。 `ConvertToHex` 按钮将 dataGridView 中的每个单元转换为 16 进制值。 `ConvertToString` 按钮将 dataGridView 中的每个单元转换回字符串。 在 `ConvertToHex_Click` 中,我们通过使用 `Encoding.Default.GetBytes` 将字符串转换为字节数组,然后使用 `BitConverter.ToString` 将字节数组转换为十六进制字符串。最后,我们通过替换掉字符串中的连字符来删除十六进制字符串中的连字符。 在 `ConvertToString_Click` 中,我们使用自定义辅助方法 `StringToByteArray` 将十六进制字符串转换回字节数组,然后使用 `Encoding.Default.GetString` 将字节数组转换回字符串。最后,我们将转换后的字符串设置回 dataGridView 单元的值。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值