enable/disable controls correctly and use DataReceived event