Поначалу я думаю, что это легко, потому что я могу использовать UserControl, некоторое перетаскивание может помочь. Но проблема в том, что текстовое поле, которое я использую, наследуется от TextBox (пусть вызывается в ComplexTextBox), и оно имеет много сложной логики и предоставляет множество свойств. Если я продолжу использовать UserControl, мне придется самому раскрыть свойства или сделать текстовое поле внутри UserControl общедоступным, чего я хочу избежать, потому что это выглядит очень глупо.
Поэтому я унаследовал ComplexTextBox, в конструкторе делаю примерно так:
Код: Выделить всё
public ComplexTextboxWithButtonAside()
{
InitializeComponent();
m_btnOpenCharDialog = new KstaButton();
m_specialCharDialogForm = new ComplexTextboxWithButtonAside(this.components);
m_specialCharDialogForm.CharacterConfirmedContainer += OnCharacterConfirmedContainer;
m_btnOpenCharDialog.Parent = this;
this.Controls.Add(m_btnOpenCharDialog);
// m_btnOpenCharDialog
// This is the button I want it to be next to the textbox
this.m_btnOpenCharDialog.Image = global::Ksta.Presentation.Properties.Resources.IconLEA;
this.m_btnOpenCharDialog.Name = "m_btnOpenCharDialog";
this.m_btnOpenCharDialog.ReadOnlyMode = false;
this.m_btnOpenCharDialog.Location = new System.Drawing.Point(this.Size.Width, 0);
this.m_btnOpenCharDialog.Size = new System.Drawing.Size(20, 20);
this.m_btnOpenCharDialog.TabIndex = 0;
this.m_btnOpenCharDialog.Text = "";
this.m_btnOpenCharDialog.UseVisualStyleBackColor = true;
this.m_btnOpenCharDialog.BringToFront();
this.m_btnOpenCharDialog.Click += OnOpenButtonClick;
}
Код: Выделить всё
this.m_btnOpenCharDialog.Location = new System.Drawing.Point(this.Size.Width - 50, 0);
Как в этом случае показать кнопку вне текстового поля. Я ищу 1 день подряд, но безуспешно. Пожалуйста, помогите!
Огромное спасибо! Пожалуйста, спросите меня, если вы обнаружите, что что-то не так.
Подробнее здесь: https://stackoverflow.com/questions/787 ... er-control