protected override void WndProc(ref Message m)
{
// Switch to handle message...
switch (m.Msg)
{
case WM_PASTE:
{
// Get clipboard object to paste
IDataObject clipboardData = Clipboard.GetDataObject();
// Get text from clipboard data
string pasteText = (string)clipboardData.GetData(
DataFormats.UnicodeText);
// Get the number of characters to replace
int selectionLength = SelectionLength;
// If no replacement or insertion, we are done
if (pasteText.Length == 0)
{
break;
}
else if (selectionLength != 0)
{
base.Text = base.Text.Remove(SelectionStart, selectionLength);
}
bool containsInvalidChars = false;
foreach (char c in pasteText)
{
if (containsInvalidChars)
{
break;
}
else if (invalidNumeric(c))
{
containsInvalidChars = true;
}
}
if (!containsInvalidChars)
{
base.Text = base.Text.Insert(SelectionStart, pasteText);
}
return;
}
}
base.WndProc(ref m);
}