The DataGridView.RowErrorTextNeeded event occurs only when the DataGridView.DataSource property of the System.Windows.Forms.DataGridView control is set or its DataGridView.VirtualMode property is true. Handling the DataGridView.RowErrorTextNeeded event is useful when you want to determine the error for a row depending on its state and the values it contains.
When you handle the DataGridView.RowErrorTextNeeded event and specify error text in the handler, an error glyph appears in the row header unless the DataGridView.ShowRowErrors property is set to false. When the user moves the mouse pointer over the error glyph, the error text appears in a ToolTip.
You can use the DataGridViewRowErrorTextNeededEventArgs.RowIndex property to determine the state of a row or the values it contains, and use this information to change or modify the DataGridViewRowErrorTextNeededEventArgs.ErrorText property. This property is initialized with the value of the row DataGridViewRow.ErrorText property, which the event value overrides.
Handle the DataGridView.RowErrorTextNeeded event when working with large amounts of data to avoid the performance penalties of setting the row DataGridViewRow.ErrorText value for multiple rows. For more information, see Best Practices for Scaling the Windows Forms DataGridView Control.
For more information about handling events, see Consuming Events.