C# 表示datagridview中的字节数组
我在C#中有一个字节数组: 我想在C# 表示datagridview中的字节数组,c#,arrays,datagridview,bytearray,bmp,C#,Arrays,Datagridview,Bytearray,Bmp,我在C#中有一个字节数组: 我想在DataGridView中表示它如下(三列-第一列偏移量、第二列大小字节、第三列描述和行是x.bmp中字节数组的元素): 我可以用C#中的DataGridView以这种方式表示字节数组吗?我不是winform的家伙,所以我不知道如何使用DataGridView。 但我能做到这一点: 这只是给你一个想法 private void Form1_Load(object sender, EventArgs e) { byte[]
DataGridView
中表示它如下(三列-第一列偏移量、第二列大小字节、第三列描述和行是x.bmp
中字节数组的元素):
我可以用C#中的
DataGridView
以这种方式表示字节数组吗?我不是winform的家伙,所以我不知道如何使用DataGridView。
但我能做到这一点:
这只是给你一个想法
private void Form1_Load(object sender, EventArgs e)
{
byte[] offset = { 0, 2, 6, 8, 10, 14, 18, 22, 26 };
byte[] sizebyte = { 4, 2, 2, 4, 4, 4, 4, 2 };
string[] description = { "signature", "size BMP", "reserved", "reserved", "offset start image", "must 40", "width", "height" };
this.dataGridView1.Columns.Add("offset", "offset");
this.dataGridView1.Columns.Add("sizebyte", "sizebyte");
this.dataGridView1.Columns.Add("description", "description");
int i = offset.Length;
for (int j = 0; j < i; j++)
{
DataGridViewRow row = new DataGridViewRow();
row.CreateCells(dataGridView1);
row.Cells[0].Value = offset.GetValue(j).ToString();
if(j<sizebyte.Length)
row.Cells[1].Value = sizebyte.GetValue(j).ToString();
if (j < description.Count())
row.Cells[2].Value = description.GetValue(j).ToString();
dataGridView1.Rows.Add(row);
}
}
private void Form1\u加载(对象发送方,事件参数e)
{
字节[]偏移量={0,2,6,8,10,14,18,22,26};
字节[]sizebyte={4,2,2,4,4,4,2};
字符串[]说明={“签名”、“大小BMP”、“保留”、“保留”、“偏移开始图像”、“必须40”、“宽度”、“高度”};
this.dataGridView1.Columns.Add(“offset”、“offset”);
this.dataGridView1.Columns.Add(“sizebyte”、“sizebyte”);
this.dataGridView1.Columns.Add(“description”、“description”);
int i=偏移量长度;
对于(int j=0;j
您不需要读取BMP文件的所有字节
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
UpdateDataGridView();
}
private void UpdateDataGridView()
{
byte[] bmp = new byte[28];
List<BMPInfo> InfoList = new List<BMPInfo>();
using (var fs = new FileStream("D:\\x.bmp", FileMode.Open, FileAccess.Read))
{
fs.Read(bmp, 0, bmp.Length);
}
InfoList.Add(new BMPInfo
{
Offset = BitConverter.ToInt32(bmp, 10),
Size = BitConverter.ToInt32(bmp, 2),
Description = "Something"
});
dataGridView1.DataSource = InfoList;
}
}
public class BMPInfo
{
public long Offset { get; set; }
public long Size { get; set; }
public string Description { get; set;}
}
公共部分类表单1:表单
{
公共表格1()
{
初始化组件();
}
私有void Form1\u加载(对象发送方、事件参数e)
{
UpdateDagRidView();
}
私有void updateDagDagRidView()
{
字节[]bmp=新字节[28];
列表信息列表=新列表();
使用(var fs=new FileStream(“D:\\x.bmp”,FileMode.Open,FileAccess.Read))
{
fs.Read(bmp,0,bmp.Length);
}
添加(新的BMPInfo)
{
偏移量=位转换器.ToInt32(bmp,10),
大小=位转换器.ToInt32(bmp,2),
Description=“某物”
});
dataGridView1.DataSource=InfoList;
}
}
公共类BMPInfo
{
公共长偏移量{get;set;}
公共长大小{get;set;}
公共字符串说明{get;set;}
}
private void Form1_Load(object sender, EventArgs e)
{
byte[] offset = { 0, 2, 6, 8, 10, 14, 18, 22, 26 };
byte[] sizebyte = { 4, 2, 2, 4, 4, 4, 4, 2 };
string[] description = { "signature", "size BMP", "reserved", "reserved", "offset start image", "must 40", "width", "height" };
this.dataGridView1.Columns.Add("offset", "offset");
this.dataGridView1.Columns.Add("sizebyte", "sizebyte");
this.dataGridView1.Columns.Add("description", "description");
int i = offset.Length;
for (int j = 0; j < i; j++)
{
DataGridViewRow row = new DataGridViewRow();
row.CreateCells(dataGridView1);
row.Cells[0].Value = offset.GetValue(j).ToString();
if(j<sizebyte.Length)
row.Cells[1].Value = sizebyte.GetValue(j).ToString();
if (j < description.Count())
row.Cells[2].Value = description.GetValue(j).ToString();
dataGridView1.Rows.Add(row);
}
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
UpdateDataGridView();
}
private void UpdateDataGridView()
{
byte[] bmp = new byte[28];
List<BMPInfo> InfoList = new List<BMPInfo>();
using (var fs = new FileStream("D:\\x.bmp", FileMode.Open, FileAccess.Read))
{
fs.Read(bmp, 0, bmp.Length);
}
InfoList.Add(new BMPInfo
{
Offset = BitConverter.ToInt32(bmp, 10),
Size = BitConverter.ToInt32(bmp, 2),
Description = "Something"
});
dataGridView1.DataSource = InfoList;
}
}
public class BMPInfo
{
public long Offset { get; set; }
public long Size { get; set; }
public string Description { get; set;}
}