I do not think you said what kind of grid you are using, but I assume it is a GridDataBoundGrid.
1) You will have to do this validation yourself. You can handle the grid.Model.ValidateCellText.
private void Model_PasteCellText(object sender, GridPasteCellTextEventArgs e)
{
if(e.Text.Length > e.Style.MaxLength)
{
e.Cancel = true;
e.Abort = false;//continue other cell pastes
}
}
2) I think the simplest way to handle this would be to set a flag in your meesage box that displays the error message. Then in CellKeyUp, only execute the new row code if this flag is not set, and also reset the flag after you test.
3) By default, the grid interprets newlines from the clipboard as information to be added in a new row. So, it will not paste text with newlines in it into a single cell. If you want this behavior, then you will have to handle the entire paste yourself. You can do this by catch the grid.Model.ClipboardPaste event.
You can also get an error if you paste at the bottom of a GridDataBoundGrid text that contains newlines if there is insufficient number of rows to how the pasted text with the newlines. You can handle this problem by adding additional lines in ClipboardPaste. Here is a forum link that discusses this. http://64.78.18.34/Support/Forums/message.aspx?MessageID=6472