Hadi Basiri Ответов: 1

Как добавить две кнопки в текстовое поле?


Привет.
Я пытаюсь сделать текстовое поле с двумя кнопками на правой стороне.
Как мне это сделать?
спасибо.

Что я уже пробовал:

защищенное переопределение void OnLoad (EventArgs e) {
var btn = новая кнопка();
БТН.Size = новый размер (25, textBox1. ClientSize.Высота + 2);
БТН.Location = новая точка (textBox1. ClientSize.Ширина-БТН.Ширина, -1);
БТН.Курсор = Курсоры.По умолчанию;
БТН.свойство изображения.Ресурсы.звезда;
textBox1. элементы управления.Добавить (btn);
// Send EM_SETMARGINS, чтобы предотвратить исчезновение текста под кнопкой
Метод SendMessage(текстовое поле textbox1.Ручка, 0xd3, (указателя IntPtr)2, (указателя IntPtr)(БТН.Ширина &ЛТ;&ЛТ; 16));
база.OnLoad (e);
}

[Система.Во время выполнения.InteropServices.DllImport("user32.dll")]
частная статический модификатор extern указателя IntPtr метод SendMessage(hwnd элемента указателя IntPtr, инт глутамат натрия, указателя IntPtr РГ, указателя IntPtr ЛП);

0x01AA

В чем именно заключается проблема?

Я вижу несколько проблем, одна из них-добавление кнопки в текстовое поле... Это и есть OnLoad из формы?

Hadi Basiri

нет, это onload от usercontrol.

Richard MacCutchan

Вы должны рассчитать местоположение относительно местоположения текстового поля в вашей форме, а не размер текстового поля. Затем добавьте кнопку в форму, а не в текстовое поле.

Ralf Meier

Для меня цель не ясна - но если вы попытаетесь сделать то, что я считаю, то было бы лучше создать свой собственный UserControl, который имеет текстовое поле и обе кнопки в нем. Каждое действие с помощью кнопок, которые должны манипулировать текстовым полем (или его содержимым), также может быть выполнено с помощью методов, которые вы создаете и которые принадлежат UserControl.
Возможно, вы подумаете об этом и скажете нам, что именно вы хотите сделать ...

1 Ответов

Рейтинг:
1

OriginalGriff

Я бы сделал это так: создал UserControl, который содержит текстовое поле и две кнопки.

 ____________  __  __
|  Text box  ||B1||B2|
 ------------  --  --
Текстовое поле имеет свойство Anchor, установленное в Top, Left и Right, а кнопки имеют Anchor Top и Right.

Таким образом, текстовое поле всегда имеет кнопки в одном и том же положении - справа от текстового поля - независимо от того, что происходит с элементом управления в целом.
Добавьте несколько свойств для доступа к тексту, установите заголовки кнопок и несколько событий, сигнализирующих о том, что кнопки нажаты, и все готово.
[правка]я ненавижу уценку! : mad: [/edit]