You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让DataGridView以十六进制格式显示指定字段?

解决DataGridView中ulong字段以十六进制显示的问题

方法一:利用CellFormatting事件(推荐,无需修改实体类)

直接给DataGridView绑定CellFormatting事件,在渲染指定列时手动格式化数值为十六进制:

  1. 在窗体初始化代码中绑定事件:
this.dumpGrid.CellFormatting += DumpGrid_CellFormatting;
  1. 实现事件处理逻辑:
private void DumpGrid_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    // 匹配目标列并处理数值格式化
    if (dumpGrid.Columns[e.ColumnIndex].Name == "dataGridViewTextBoxColumn3" && e.Value != null)
    {
        // 转为带0x前缀的大写十六进制字符串
        e.Value = $"0x{Convert.ToUInt64(e.Value):X}";
        // 标记格式已处理,跳过默认格式化逻辑
        e.FormattingApplied = true;
    }
}

方法二:修改实体类,新增只读属性

若允许调整Summary类,可添加一个返回十六进制格式的只读属性,再绑定到DataGridView列:

  1. 更新Summary类:
public class Summary
{
    public int ProcessId { get; private set; }
    public string ProcessName { get; private set; }
    public ulong MainModuleBase { get; private set; }
    
    // 新增只读属性,返回十六进制格式的基地址
    public string MainModuleBaseHex => $"0x{MainModuleBase:X}";
}
  1. 修改DataGridView列的绑定配置:
this.dataGridViewTextBoxColumn3.DataPropertyName = "MainModuleBaseHex";

两种方案按需选择:方法一适合实体类无法修改的场景,方法二更直观简洁。

内容的提问来源于stack exchange,提问作者UnSure

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 06:47:18