Полагаю, вы имеете в виду, что событие MouseWheel в UserControl не будет запускаться.Это нормально, TextBox с радостью принимает сообщение, когда оно многострочное.Причина, по которой событие MouseWheel не отображается в конструкторе.Родительское окно увидит сообщение только тогда, когда элемент управления с фокусом не обработает его.
Не уверен, что если вы исправите это, пользователь действительно будет ожидать прокрутки текстового поля.Но вы можете перехватить сообщение, чтобы текстовое поле его не увидело, и передать сообщение родителю.Добавьте новый класс в свой проект, вставьте код, показанный ниже.Компиляция.Удалите новый элемент управления с верхней части панели инструментов.
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
class MyTextBox : TextBox {
protected override void WndProc(ref Message m) {
if (m.Msg == 0x20a && this.Parent != null) {
PostMessage(this.Parent.Handle, m.Msg, m.WParam, m.LParam);
}
else base.WndProc(ref m);
}
[DllImport("user32.dll")]
private static extern IntPtr PostMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp);
}