问题是这样的,我的软件界面区域上有一个treeview,同时还有一个区域用来动态生成很多个panel,现在我要求在点击树中的某个节点的时候,能够使选中的动态生成的panel显示一个视频。
现在问题有两个,第一、是如何用鼠标选中panel并使panel边框变色表示当前选中项。第二、是如何获取选中的panel的ID,从而对其操作,希望了解的朋友踊跃帮主,谢谢~!!!

解决方案 »

  1.   

    winform中如何获取动态生成的多个控件的ID 这是你生成的记录下来不就可以了嘛??
      

  2.   

    第一个问题,可以再用一个panel嵌套一个panel,把最外面的一个panel的padding left,top,bottom,right属性设置一下,然后通过改变它的背景颜色达到要求;
    第二个问题,要去panel里面所有控件的ID,因为PANEL是容器,里面的所有控件都在panel.controls集合内,可以循环取出来,从而得到控件的ID;如:
    foreach(control c in panel.controls)
    {
    }
      

  3.   

    不好意思,看错第二个问题了,panel是动态生成的,就已经知道ID了
      

  4.   

    我现在可以获取到控件的ID,并且也能够使用Paint事件将panel重绘了,但是现在有一个问题,就是点第一个panel1实现重绘边框后,再点第二个panel2时,如何将panel1的边框去掉,实现单独选中???
      

  5.   

    按照一定规律为动态生成的PANLE命名, 比如 Panel pan = new Panel();
    pan.Name = pnl1;  以此类推
    然后foreach遍历所有的 panel, 判断Name属性找到你想要的panel
      

  6.   

    生成panenl时,将panel控件的名称,赋值给对应treenode的tag,然后就以在选中某个treenode时,获取该节点的tag,也就是panel控件的name,这样就可以操作对应的panel了。
      

  7.   

    自定义控件panel,增加一“被选中”属性(布尔值),这一属性在Paint事件中控制重绘的内容即可