对于C/C++的位段不太了解,不知道楼主要的是不是这个效果
[System.Runtime.InteropServices.StructLayout(
System.Runtime.InteropServices.LayoutKind.Explicit)]
struct test1
{
[System.Runtime.InteropServices.FieldOffset(0)]
public UInt16 a;
[System.Runtime.InteropServices.FieldOffset(1)]
public UInt16 b;
}
这样是表示a变量到结构体起始位置偏移量为0,b到结构体起始位置偏移量为1,单位是字节
用Byte数组吧。自己写个类。
一个1数组的Byte就是1位,2个元素的Byte数组就是2位。至于操作类,慢慢写吧,挺烦。
有啊 c#中结构体和类的定义很相似,只是在内存中的方式不一样
拖拽效果有点小麻烦,改成双击就容易实现.
拖拽的话,需要在treeview上实现mouse_move,就是鼠标移动的时候,有左键按下代表正在拖动,
panel上需要实现dragdrop和dragenter就是拖动对象放下的事件和拖进panel控件的事件.
panel还要安排多个标签的位置防止标签重叠.
基本上除非你要和COM组件去互操作,本来你用C#就不用去操心内存的问题。如果非要操作位,使用System.Collections.BitArray类。
http://msdn.microsoft.com/zh-cn/library/system.collections.bitarray.aspx