我有一些代码,当它执行时,它抛出一个NullReferenceException,说:
你调用的对象是空的.
这是什么意思,我该怎么做才能解决这个错误?
我的DrawMode设置为OwnerDrawText并上涨到DrawNode事件,加入我的代码绘制文本的方式我想和所有的作品以及保存的一些奇怪的黑色选择当选择一个节点突出.
没问题,我添加了逻辑来检查节点的状态是否突出显示并绘制了我自己的突出显示,除了在单击节点时添加黑色突出显示,而不仅仅是选中...一旦鼠标按钮突出显示我的矩形突出显示被释放但确实被吸引并眨眼......这很烦人.:/
显然我忘了真的问我的问题......如果没有完全处理绘图,怎么会去除选择?
我有一个列表'Name','Expected','Total'的ListView,我想在最后添加另一个列'Recount'.仅当"预期"值大于"总计"值时,"重新计数"列才会有一个复选框.
到目前为止,我已经获得了带有列的ListView,并且可以在左侧添加一个复选框,但是该复选框不在列标题下(尽管我可以放置另一个没有值的列来解决这个问题)和这是所有的记录.
任何人都有什么想法我还能做些什么?
我正在使用具有三级节点的树视图,第二级我没有使用此问题中的代码设置复选框.
它工作得非常好,除了它遇到的第一个复选框从未删除复选框:

我正在使用此代码调用HideCheckBox()方法,该代码在所有数据已加载到树视图中之后:
foreach (TreeNode appNode in trvPermissions.Nodes)
{
foreach (TreeNode secNode in appNode.Nodes)
{
HideCheckBox(trvPermissions, secNode);
}
}
Run Code Online (Sandbox Code Playgroud)
当我逐步执行代码时,似乎node.Handle为它遇到的第一个节点返回0,这不是调用代码删除复选框时使用的有效句柄.奇怪的是,如果我调用该方法两次删除复选框,则正确返回句柄.
任何人都可以建议为什么TreeNode.Handle不会返回正确的值?
编辑:
这是所要求的代码 -
private const int TVIF_STATE = 0x8;
private const int TVIS_STATEIMAGEMASK = 0xF000;
private const int TV_FIRST = 0x1100;
private const int TVM_SETITEM = TV_FIRST + 63;
[StructLayout(LayoutKind.Sequential, Pack = 8, CharSet = CharSet.Auto)]
private struct TVITEM
{
public int mask;
public IntPtr hItem;
public int state;
public int stateMask;
[MarshalAs(UnmanagedType.LPTStr)]
public string lpszText;
public …Run Code Online (Sandbox Code Playgroud) 在我的C#Windows窗体应用程序中,我有Treeview控件和复选框.
我想从用户隐藏TreeView控件中某个树节点的复选框.我怎么做?
请指导我摆脱这个问题......