DataGridView ToolTipText, не показывающий

Если вы хотите установить constrainedWidth/Height программно, то вы должны взять ConstraintLayout.LayoutParams для своего просмотра и установить флаг с именем constrainedWidth или constrainedHeight по вашему желанию. 115]

Т.е.

ConstraintLayout.LayoutParams lp = (ConstraintLayout.LayoutParams) myView.getLayoutParams(); // View for which we need to set constrainedWidth.
lp.constrainedWidth = true/false;
myView.setLayoutParams(lp);

constrainedWidth

Укажите, будет ли ограничен размер по горизонтали в случае, когда левые и ампер; установлены правильные ограничения, и измерение виджета не является фиксированным измерением.

По умолчанию, если для виджета установлено значение WRAP_CONTENT, мы будем рассматривать это измерение как фиксированное измерение , то есть измерение не изменится независимо от ограничений.

Установка этого атрибута в true позволяет измерению изменяться для соблюдения ограничений.

blockquote>

Проверьте здесь .

9
задан davmos 3 December 2015 в 10:38
поделиться

7 ответов

Мы закончили тем, что использовали виджет ToolTip и CellMouseEnter, CellMouseLeave события для показа его соответственно. Не оптимальный, но это работает вокруг нечетного поведения, которое мы испытывали.

2
ответ дан 4 December 2019 в 08:02
поделиться

Кажется от Вашего вопроса, что Вы устанавливаете текст всплывающей подсказки столбцов. Текст всплывающей подсказки столбцов только появляется при плавании по заголовкам. Для показа текста всплывающей подсказки на ячейках, Вы имеете к сцеплению CellToolTipTextNeeded событие и установленный значение e.ToolTipText в конечном счете args

9
ответ дан 4 December 2019 в 08:02
поделиться

Я не знаю, является ли эта подсказка решением Вашей определенной проблемы, но Вы используете SP1 VS2008? Этот Пакет обновления решает много других вопросов, поскольку я обнаружил.

0
ответ дан 4 December 2019 в 08:02
поделиться

Попробуйте использовать свойство Cell.ToolTipText. Вам, вероятно, придется зацикливать строки DataGridView и настраивать всплывающие подсказки вручную:

 For Each row As DataGridViewRow In Me.DataGridView.Rows
   Me.DataGridView("MyCol", row.Index).ToolTipText = "MyToolTipText"
 Next

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

4
ответ дан 4 December 2019 в 08:02
поделиться

В настоящее время у меня такое же поведение на Framework 3.5. Кажется, что необходимо установить свойство DataSource, чтобы сработало событие CelToolTipTextNeeded.

1
ответ дан 4 December 2019 в 08:02
поделиться

Когда я добавил в форму datagridview с одним (пустым) столбцом, добавил текст в свойство ToolTipText для этого столбца и убедился, что для свойства ShowCellToolTips для datagridview установлено значение True, я получаю всплывающую подсказку при наведении курсора мыши на заголовок этого столбца. Кажется, это противоречит тому, что было заявлено в исходном вопросе, но в моем тесте сетка не была привязана к данным. Не уверен, что это имеет значение. Однако в проекте с привязкой к данным datagridview я просто использовал компонент ToolTip:

(1) Добавьте компонент ToolTip в вашу форму.
(2) Задайте для свойства ToolTip свойства toolTip1 (или эквивалентного имени для вашего компонента ToolTip) любой текст, который вы хотите отобразить.
(3) Установите для свойства ShowCellToolTips представления данных значение False.
(4) Альт! Работает как положено.

4
ответ дан 4 December 2019 в 08:02
поделиться

Я нашел в этой статье помощь по настройке всплывающих подсказок для каждой строки.

Я просто хотел подтвердить, что обработка события CellToolTipText у меня работает в VS2008 SP1.

Для тех из вас, кому интересно, как установить текст в значение из базовой строки данных, это может быть полезно:

    private void myDGV_CellToolTipTextNeeded(object sender, DataGridViewCellToolTipTextNeededEventArgs e)
    {
        // This is used to set tooltiptext for individual cells in the grid.
        if (e.ColumnIndex == 2)  // I only want tooltips for the second column (0-based)
        {
            if (e.RowIndex >= 0)   // When grid is initialized rowindex == 0
            {
                // e.ToolTipText = "this is a test."; // static example.

                DataRowView drv = ((DataGridView)sender).Rows[e.RowIndex].DataBoundItem as DataRowView;
                MyTableRowClass theRow = drv.Row as MyTableRowClass;
                e.ToolTipText = theRow.Col1  + "\r\n" + theRow.Col2;
            }
        }
    }
0
ответ дан 4 December 2019 в 08:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: