Try below code.
tbx.ReadOnly=true;
btn.Click+=new EventHandler((o,e)=>{tbx.ReadOnly=False;tbx.Focus();})
tbx.KeyUp+=new KeyEventHandler((o,e)=>{if(e.KeyCode==Keys.Return)tbx.ReadOnly=true;});
tbx.Leave += new EventHandler((o, e)=>tbx.ReadOnly=true);
you can use Enabled property instead of Readonly property