首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#自定义控件事件的有关问题。待指点。

2013-10-29 
C#自定义控件事件的问题。。。在线等待指点。。。。!!!!我自定义了一个控件UserStations,控件的单击事件里面我写

C#自定义控件事件的问题。。。在线等待指点。。。。!!!!
我自定义了一个控件UserStations,控件的单击事件里面我写了代码是:当单击该控件的时候,有一个选中的效果,主要是颜色变了。

我在主程序界面动态添加了N个UserStations控件,这时问题就来了,当我点击其中一个,单击该控件的事件触发,颜色就变了,然后我点另外一个,颜色也变了,到最后....我主界面上添加的这些控件全颜色变了,我想要的效果是:点击哪个,哪个颜色变,其他的回归到原始色。

但是我不知道如何写了,还是在这个自定义控件的单击事件里面写?肯定不行吧,主界面的话  我又不知道在哪里来控制,怎么控制。谁能提供点思路啊。。。。。 控件 c# winfrom 事件
[解决办法]
巧妙利用类成员解决这个问题


public partial class UserStations : UserControl
{
    private static UserStations preCtl = null;
    private static Color default_Color = SystemColors.Control;

    //constructor

    Click Event:

       if (preCtl != null) preCtl.BackColor = default_Color;
       BackColor = Color.Red;
       preCtl = this;
}

[解决办法]
UserStations中定义一个static的List<UserStations>.使用单件模式取得它的实例。
UserStations的构造函数中将this 加入到List<UserStations>中。

点击事件触发是改变颜色时,遍历List<UserStations>,如果不是自己Reset color到原始色。

热点排行