dragnscalearmor Ответов: 0

В C#, используя элемент управления tablelayoutpanel связующего без добавления новых строк/столбцов?


Кто-нибудь знает, как охватить несколько строк в TableLayoutPanel без добавления новых строк или столбцов? У меня есть 3 столбца по 6 строк в каждом. Мне нужно охватить строку, но когда я это делаю, она добавляет новые строки. Мне нужно охватить ряды, не добавляя новых. Каждая строка содержит элемент управления textbox. Возможно ли это?

Спасибо! Мой код находится ниже:

private void control_TextChanged(object sender, EventArgs e)
        {
            string str = control.Text;
            if (str.Contains("Follow-Up"))
            {
                table.SetColumnSpan(control, 1);
                table.SetRowSpan(control, 2);
                control.BackColor = Color.PowderBlue;
            }
            else if (str.Contains("Admit"))
            {
                table.SetColumnSpan(control, 1);
                table.SetRowSpan(control, 4);
                control.BackColor = Color.Lavender;
            }
            else
            {
                table.SetColumnSpan(control, 1);
                table.SetRowSpan(control, 1);
                control.BackColor = Color.White;
            }
        }

        private void textbox_Enter(object sender, EventArgs e)
        {
            control = (TextBox)sender;
        }


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

Я установил GrowStyle в None, но это просто дает ошибку при попытке охватить строку.

Gerry Schmitz

Может быть, вам стоит объяснить, "почему" или "что" вы хотите? Какой-то странный текст изменил поведение? Нет. Может быть, попробуйте обернуть текст или "большую коробку".

dragnscalearmor

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

У меня есть три колонки по шесть строк в каждой. Мне нужно будет иногда соединять некоторые строки вместе во время выполнения, и я могу сделать это просто отлично. Проблема заключается в том, что при переносе строки в другую строку по умолчанию создается еще одна строка, которая сдвигает остальные ячейки, смещая все, что находится ниже них. В моей программе может быть всего 18 клеток.

Gerry Schmitz

Что значит текстовое поле "не имеет значения"? Это и есть тот "контроль", который вы охватываете. И вам нужно "что-то", что натянуто. Или вам нужно придумать лучшее объяснение.

dragnscalearmor

- Вы правы. Текстовые поля заполняются. Проблема возникает потому, что, когда текстовое поле охватывает, все в ячейках под ним и справа от него смещается. Но мне нужно, чтобы они не сдвигались, когда над ними возникает пролет.

0 Ответов