Почему я не могу разместить свое собственное текстовое поле внутри панели или группы? - PullRequest
0 голосов
/ 15 марта 2019

У меня есть пользовательский элемент управления TextBox, определенный следующим образом:

class PHTextBox : System.Windows.Forms.TextBox
{
    System.Drawing.Color DefaultColor;
    public string PlaceHolderText { get; set; }

    public PHTextBox(string placeholdertext)
    {
        // get default color of text
        DefaultColor = this.ForeColor;
        // Add event handler for when the control gets focus
        this.GotFocus += (object sender, EventArgs e) =>
        {
            this.Text = String.Empty;
            this.ForeColor = DefaultColor;
        };

        // add event handling when focus is lost
        this.LostFocus += (Object sender, EventArgs e) => {
            if (String.IsNullOrEmpty(this.Text) || this.Text == PlaceHolderText)
            {
                this.ForeColor = System.Drawing.Color.Gray;
                this.Text = PlaceHolderText;
            }
            else
            {
                this.ForeColor = DefaultColor;
            }
        };

        if (!string.IsNullOrEmpty(placeholdertext))
        {
            // change style   
            this.ForeColor = System.Drawing.Color.Gray;

            // Add text
            PlaceHolderText = placeholdertext;
            this.Text = placeholdertext;
        }
    }
}

Я пытаюсь добавить пользовательский текстовый блок в Panel следующим образом:

this.tbNombresClienteConfirmarPago = new PHTextBox("Your name");
this.tbNombresClienteConfirmarPago.Location = new System.Drawing.Point(0,0);//(644, 485);
this.tbNombresClienteConfirmarPago.Name = "tbNombresClienteConfirmarPago";
this.tbNombresClienteConfirmarPago.Size = new System.Drawing.Size(203, 20);
this.tbNombresClienteConfirmarPago.TabIndex = 7;
this.tbNombresClienteConfirmarPago.MaxLength = 50;
this.panel1.Controls.Add(this.tbNombresClienteConfirmarPago);

Но это не работает.

Я добавляю текстовое поле или кнопку, которые принадлежат Windows Forms, и они без проблем добавляются в Panel без проблем.

Любой комментарий приветствуется.

Обновление:

Когда я хотел сказать, что «это не работает», я имел в виду тот факт, что объект не отображается внутри панели.

PHTextBox правильно отображается в форме.

...