读书人

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

发布时间: 2013-10-29 12:07:57 作者: rapoo

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到原始色。

读书人网 >C#

热点推荐