I am trying to make an application which will download records to a datagrid in the background, similar to the way e-mail appears in Outlook. I have this bound to a datagrid, and for argument sake, let's say I have a timer that appends a record to dataset once per second.
By submitting your email address, you agree to receive emails regarding relevant topic offers from TechTarget and its partners. You can withdraw your consent at any time. Contact TechTarget at 275 Grove Street, Newton, MA.
So far so good; it works as expected -- except the datagrid steals focus each time the timer fires. If I am on another form, or control, suddenly I am sitting on the grid!
I would like the record to appear without affecting focus. Any idea how to update the datagrid so it will not affect focus?
I hate thieves, especially those that steal focus! What you're going to need to do in the timer event handler is get the control that has focus on the form (System.Windows.Forms.Control.Controls.Focused) and save it off. After you do your updating, call the Control.Focus() method to reset the control back.
Of course, the default Data Grid control is not so perfect and there's no easy way to keep it from stealing focus. If it still steals focus and refuses to update in the background, you may be better off looking at one of the third party grid controls.
Dig Deeper on Win Development Resources
Related Q&A from John Robbins
What is a JAD session? This term is referred to often in job postings and seems like some kind of brainstorm you carry out with a client to define IT...continue reading
Have a question for an expert?
Please add a title for your question
Get answers from a TechTarget expert on whatever's puzzling you.