Not that this matters a great deal, but you only need to bitwise-and with 0xffffff in one place:
Code:
private void CheckSelectFirework(Point point)
{
foreach(Firework firework in Fireworks)
{
if(PointOverRect(point.X,
point.Y,
firework.X,
firework.Y,
FireworkTypes[firework.Angle][firework.Colour].Width,
FireworkTypes[firework.Angle][firework.Colour].Height))
{
foreach(Firework firework2 in Fireworks)
{
if(((LastColorSelected & firework.Colour.ToArgb()) & 0xffffff) == 0)
{
firework2.IsSelected = false;
}
}
firework.IsSelected = true;
LastColorSelected = firework.Colour.ToArgb();
}
}
}