Figure 10 The SafeLabel Control
กก
public class SafeLabel : Label
{
   delegate void SetString(string text);
   delegate string GetString();
   override public string Text
   {
      set
      {
         if(InvokeRequired)
         {
            SetString setTextDel = delegate(string text)
                                           {base.Text = text;};
            Invoke(setTextDel,new object[]{value});
         }
         else
            base.Text = value;
      }
      get
      {
         if(InvokeRequired)
         {
            GetString getTextDel = delegate(){return base.Text;};
            return (string)Invoke(getTextDel,null);
         }
         else
            return base.Text;
      }
   }
}