Я делал подобное однажды.Самый простой способ сделать это - создать UserControl, подобный предложенному BradRem, а затем поместить TextBox без полей в Panel с тем же цветом фона, что и TextBox.Слева на этой панели вы положили свой значок.Как полный UserControl, он теперь ведет себя как TextBox с зарезервированной областью слева со значком в нем.
Обновление:
Я должен был проверить это для себя и создал UserControl, как я сказал.Кроме того, я добавил событие Paint в панель контейнера, которое рисует границу того же цвета, что и TextBox:
public partial class UCTextBoxWithLabel : UserControl {
public UCTextBoxWithLabel() {
InitializeComponent();
pnlTextBoxWithImage.Paint += new PaintEventHandler(pnlTextBoxWithImage_Paint);
}
void pnlTextBoxWithImage_Paint(object sender, PaintEventArgs pea) {
ControlPaint.DrawBorder(pea.Graphics, pea.ClipRectangle, Color.FromArgb(0x7f, 0x9d, 0xb9), ButtonBorderStyle.Solid);
}
}
... и выглядит примерно так, как вы хотите: