c # динамически создаваемый размер ярлыка недостаточно широк

1

При динамическом создании метки отсутствует часть текста. Это связано с тем, что размер ярлыка недостаточно широк, он разрезает часть фактической строки.

Как я могу просто остановиться? Я не хочу и не помню, как установить размер метки. Должна ли она продолжаться до тех пор, пока строка не будет пустой?

Пример: value = "Berserker Iron Axe", он отображает только "Berserker Iron", потому что у меня нет размера, чтобы он сместил часть строки.

    PictureBox finalResult_pBox = new PictureBox {
                                    Name = "finalResult_pBox" + i,
                                    Size = new Size(64, 64),
                                    Padding = new Padding(0),
                                    BorderStyle = BorderStyle.FixedSingle,

                                    ImageLocation = spidyApi_idByName_result.results[i].img.ToString(),
                                };
                              MessageBox.Show(spidyApi_idByName_result.results[i].name.ToString());

                                Label finalResult_itemName_label = new Label{
                                    Name = "finalResult_itemName_label" + i,
                                    Text = spidyApi_idByName_result.results[i].name,
                                };

                                FlowLayoutPanel finalResult_panel = new FlowLayoutPanel{
                                    FlowDirection = FlowDirection.TopDown,
                                    BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle,
                                    Name = "result_flowLayoutPanel" + i,
                                    Size = new System.Drawing.Size(790, 64),
                                    TabIndex = i,
                                };



finalResult_panel.Controls.Add(finalResult_pBox);
finalResult_panel.Controls.Add(finalResult_itemName_label);
result_flowLayoutPanel.Controls.Add(finalResult_panel);

Почему это происходит и как я это исправить?

  • 0
    @BillWoodger Теперь я выяснил, почему он показывает только часть значения, потому что его размер недостаточно велик. Теперь вопрос, как мне установить размер, равный размеру текста? я редактирую свой вопрос
  • 0
    @BillWoodger Я редактировал вопрос.
Показать ещё 4 комментария
Теги:
label
text
panel

1 ответ

3
Лучший ответ

Пока вы сохраняете Label.AutoSize = true, который по умолчанию должен автоматически определяться автоматически.

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

  • установка BorderStyle
  • или BackColor
  • или вставка пробела в текст, поэтому у него появляется возможность перейти ко второй строке.

  • Конечно, вы могли бы измерить текст (например, TextRenderer.MeasureText(text, Label.Font); но это, безусловно, не обязательно, чтобы текст просто отображался. Однако он полезен для более требовательного управления компоновкой.

Итак, первое, что нужно сделать, чтобы AutoSize был либо прав, либо что вы измеряете и устанавливаете Size Label.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню