Как изменить размер / растянуть текстовое поле на основе другого содержимого текстового поля? - PullRequest
0 голосов
/ 05 апреля 2019

Я хотел бы изменить размер своего текстового поля на основе другого содержимого текстового поля.

Это то, что я пытался сделать.

private void button1_Click(object sender, EventArgs e)
{
    receive.AutoSize = true;
    receive.Text = send.Text;
}

Я хочу, чтобы текстовое поле автоматическирастянуть или изменить размеры по X и Y на основе содержимого другого текстового поля.

Ответы [ 2 ]

0 голосов
/ 05 апреля 2019
 private void sender_TextChanged/*or button1_Click*/(object sender, EventArgs e)
 {
      Graphics graph = CreateGraphics();

      SizeF measuredStringSize = graph.MeasureString(tb_sender.Text, tb_sender.Font);

      tb_receiver.Width = (int)measuredStringSize.Width;
      tb_receiver.Text = tb_sender.Text;
 }
0 голосов
/ 05 апреля 2019

Хорошо, я нашел что-то вроде этого.

    private void button1_Click(object sender, EventArgs e)
    {
        receive.Text = send.Text;
        Size sz = new Size(receive.ClientSize.Width, int.MaxValue);
        TextFormatFlags flags = TextFormatFlags.WordBreak;
        int padding = 3;
        int borders = receive.Height - receive.ClientSize.Height;
        sz = TextRenderer.MeasureText(receive.Text, receive.Font, sz, flags);
        int h = sz.Height + borders + padding;
        if (receive.Top + h > this.ClientSize.Height - 10)
        {
            h = this.ClientSize.Height - 10 - receive.Top;
        }
        receive.Height = h;
    }

Но мне нужно установить максимальную высоту, ширину и минимум.Как мне это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...