Getting the KML color code from colordialog box more efficiently
In the System.Drawing namespace lives the ColorTranslator class which has an ToHtml() method which can be used here. A good way would be to create extension methods for this task. The first extension method will be named ToKMLColor and will expect a String parameter.

By using dec.TryParse() and Math.Min() we assure that the given parameter is a valid representation of a decimal/number with a maximum of 100. If the TryParse won't succeed, we assume that the opacity will be 0.
After we have got the computed (/100*255) opacity value we pass it    

public static string ToKMLColor(this Color color, String percentageOpacity)
{
    decimal opacity = 0;
    decimal.TryParse(percentageOpacity, out opacity);

    opacity = Math.Min(opacity, 100);
    opacity = Math.Floor(opacity / 100 * 255);

    return color.ToKMLColor(opacity);
}


to the overloaded ToKMLColor() method, which takes a decimal parameter. After converting the decimal to an int we pass it

public static string ToKMLColor(this Color color, decimal opacity)
{
    return color.ToKMLColor(Convert.ToInt32(opacity));
}  


to the overloaded ToKMLColor() method, which takes an integer parameter. Here we call the ToString() method with the X2 format to get the hex representation of the integer parameter and concat the return value of the ToHex() by using the Substring() method to remove the leading #.

public static string ToKMLColor(this Color color, int opacity)
{
    return opacity.ToString("X2") + color.ToHex().Substring(1);
}
public static String ToHex(this Color color)
{
    return System.Drawing.ColorTranslator.ToHtml(Color.FromArgb(0, color));
}  


Now we can call  

polyColor = colorDialog1.Color.ToKMLColor(txtOpacity.Text);