That's cute, set up values, don't use them and then blow up when the if test passes and rgb[1] == "G" :laugh: Well, if it does return true, you know you "CanParse" rgb[0] :) There are a lot of things I see in code that don't make sense. Interesting, "int i = 350; byte b = (byte)i;" works fine (sorta), but if you byte.TryParse(i.ToString(), out b); it will return false while b changes from 94 to 0.