C# Winform TreeView CheckBox 部分显示(代码)
publicpartialclassForm1:Form{privateconstintTVIF_STATE=0x8;privateconstintTVIS_STATEIMAGEMASK=0xF000;privateconstintTV_FIRST=0x1100;privateconstintTVM_SETITEM=TV_FIRST+63;publicForm1(){InitializeComponent();this.treeView1.CheckBoxes=true;this.treeView1.ShowLines=false;this.treeView1.DrawMode=System.Windows.Forms.TreeViewDrawMode.OwnerDrawAll;this.treeView1.DrawNode+=newSystem.Windows.Forms.DrawTreeNodeEventHandler(this.treeView_DrawNode);for(inti=0;i<10;++i){this.treeView1.Nodes.Add(string.Format("Firstlevel{0}",i));for(intj=0;j<5;j++){this.treeView1.Nodes[i].Nodes.Add(string.Format("Secondlevel{0}",j));for(intk=0;k<5;k++){this.treeView1.Nodes[i].Nodes[j].Nodes.Add(string.Format("Thirdlevel{0}",k));}}}this.treeView1.ExpandAll();}PrivatevoidtreeView_DrawNode(objectsender,DrawTreeNodeEventArgse){if(e.Node.Level==1)HideCheckBox(this.treeView1,e.Node);e.DrawDefault=true;}[StructLayout(LayoutKind.Sequential,Pack=8,CharSet=CharSet.Auto)]PrivatestructTVITEM{Publicintmask;PublicIntPtrhItem;Publicintstate;PublicintstateMask;[MarshalAs(UnmanagedType.LPTStr)]PublicstringlpszText;PublicintcchTextMax;PublicintiImage;PublicintiSelectedImage;publicintcChildren;publicIntPtrlParam;}[DllImport("user32.dll",CharSet=CharSet.Auto)]PrivatestaticexternIntPtrSendMessage(IntPtrhWnd,intMsg,IntPtrwParam,refTVITEMlParam);///<summary>///HidesthecheckboxforthespecifiednodeonaTreeViewcontrol.///</summary>PrivatevoidHideCheckBox(TreeViewtvw,TreeNodenode){TVITEMtvi=newTVITEM();tvi.hItem=node.Handle;tvi.mask=TVIF_STATE;tvi.stateMask=TVIS_STATEIMAGEMASK;tvi.state=0;SendMessage(tvw.Handle,TVM_SETITEM,IntPtr.Zero,reftvi);}}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。