DataGridView mit Errorprovider in Zelle

09/04/2008 - 13:37 von Ronald Rode | Report spam
Hallo NG,

bei einem DataGridView fange ich das DataError-Ereignis ab und füge einen
ErrorProvider in die Zelle ein, die das Ereignis geworfen hat. Dies mache
ich über:

private void DataError(object sender, DataGridViewDataErrorEventArgs e)

{

if(((DataGridView)sender).EditingControl == null) return;

epMyErrorProvider.SetError(((DataGridView)sender).EditingControl,e.Exception.Message);

}

Der Errorprovider wird auch angezeigt. Leider wird er abgeschnitten. In der
Zelle steht der neu eingegebene Text und dann ein kleines Stück vom
Errorprovider. Ich habe auch schon versucht mit Padding zu arbeiten. Dort
wird dann auch nur ein Teil des Errorproviders angezeigt, obwohl nach rechts
in der Zelle noch genug Platz ist.

Hat jemand eine Lösung wie ich das einstellen könnte, dass der gesamte
ErrorProvider angezeigt wird?

Vielen Dank
 

Lesen sie die antworten

#1 Frank Dzaebel
12/04/2008 - 10:13 | Warnen spam
Hallo Ronald,

bei einem DataGridView fange ich das DataError-Ereignis ab und füge einen
ErrorProvider in die Zelle ein, die das Ereignis geworfen hat. Dies mache
ich über:
private void DataError(object sender, DataGridViewDataErrorEventArgs e)
{ if(((DataGridView)sender).EditingControl == null) return;
epMyErrorProvider.SetError(((DataGridView)sender).
EditingControl,e.Exception.Message);
}
Der Errorprovider wird auch angezeigt. Leider wird er abgeschnitten.



Je nach EditingControl unterschiedlich.
Bei einer TextBox würde ich es so machen:

private void personDataGridView_DataError(object sender,
DataGridViewDataErrorEventArgs e)
{
DataGridView dgv = (DataGridView) sender;
if (dgv.EditingControl == null) return;
const int zusatzIconAbstand = 5;
Control editControl = ((DataGridView)sender).EditingControl;
editControl.Width = dgv.EditingPanel.Width -
epMyErrorProvider.Icon.Width - zusatzIconAbstand;
e.ThrowException = false;
epMyErrorProvider.SetError(editControl, e.Exception.Message);
}


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen