protected override bool ProcessDialogKey(System.Windows.Forms.Keys keyData) { System.Windows.Forms.Keys key = keyData; if(key == System.Windows.Forms.Keys.Escape) { // tell the business object to cancel here. // may have to have some thread synchronization // logic (locks) on the business object // if its running on another thread. } }HTH,