Firstly, you shouldn't be using the LostFocus event at all. To do something when the focus leaves a control you handle the Leave event.

Secondly, your problem is that every time you access a property from My.Resources it creates a new object. No existing object can possibly be that object so your comparisons will always evaluate to False. Even this would evaluate to False:
vb.net Code:
  1. My.Resources.ask_icon Is My.Resources.ask_icon
because it is testing whether two different objects are the same object. You need to retrieve your resources once and once only. You can assign them to member variables then access them from there. That way there will be one instance only of each one, so your comparisons will evaluate to True.