Я знаю, что этот вопрос немного устарел, но на всякий случай, если кто-то ищет это, я постараюсь ответить на него:
Вам необходимо переопределить метод SetBoundsCore в вашем пользователеконтроль.Как то так:
protected override void SetBoundsCore(
int x, int y, int width, int height, BoundsSpecified specified)
{
// EDIT: ADD AN EXTRA HEIGHT VALIDATION TO AVOID INITIALIZATION PROBLEMS
// BITWISE 'AND' OPERATION: IF ZERO THEN HEIGHT IS NOT INVOLVED IN THIS OPERATION
if ((specified & BoundsSpecified.Height) == 0 || height == DEFAULT_CONTROL_HEIGHT)
{
base.SetBoundsCore(x, y, width, DEFAULT_CONTROL_HEIGHT, specified);
}
else
{
return; // RETURN WITHOUT DOING ANY RESIZING
}
}