Неопределенный протокол в ячейке URL - PullRequest
0 голосов
/ 30 марта 2020

У меня есть UltraGridCell со стилем, равным Infragistics.Win.UltraWinGrid.ColumnStyle.URL, и я добавляю свой собственный обработчик в UltraGrid.MouseClick, чтобы я мог открыть новую вкладку, если щелкнуть столбцы URL

Ничего неверно, если столбец URL имеет значение «ABCDE». Это похоже на ссылку URL в ячейке с подчеркиванием и синим цветом (становится фиолетовым после щелчка). Это похоже на ссылку URL в браузере.

Проблема заключается в том, что если содержимое имеет значение, например "AB C: DE". Оказывается, он жалуется, что существует неопределенный протокол вызова. Также как вы вводите «AB C: // DE» в строке URL IE.

enter image description here

После проверки в режиме отладки, похоже, что это должно вызываться UltraGrid внутренне. Поэтому мой вопрос таков: могу ли я отключить это поведение по умолчанию?

Любая помощь очень важна.

1 Ответ

1 голос
/ 31 марта 2020

Когда вы устанавливаете стиль столбца на Infragistics.Win.UltraWinGrid.ColumnStyle.URL, редактор столбца становится Infragistics.Win.FormattedLinkLabel.FormattedLinkEditor. Этот редактор имеет LinkClicked событие. В обработчике события вы можете получить свойство OpenLink аргумента события и установить его в false. Это подавит открытие ссылки. Для этого сначала вызовите редактор в событии InitializeLayout:

private void UltraGrid1_InitializeLayout(object sender, InitializeLayoutEventArgs e)
{
    // get the column you will set up
    var column = e.Layout.Bands[YOUR_BAND_INDEX].Columns[YOUR_COLUMN_INDEX];

    // set the style of the column (you already did this)
    column.Style = Infragistics.Win.UltraWinGrid.ColumnStyle.URL;

    // get the editor after set the column style and handle LinkClicked event
    var editor = column.Editor as FormattedLinkEditor;
    editor.LinkClicked += this.Editor_LinkClicked;
}

Затем в LinkClicked открытие ссылки остановки события:

private void Editor_LinkClicked(object sender, Infragistics.Win.FormattedLinkLabel.LinkClickedEventArgs e)
{
    e.OpenLink = false;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...