отображение данных в формате Rich text в ячейке infragistics win grid

#ultrawingrid

#ultrawingrid

Вопрос:

Как мне отобразить текст в формате Rich text в ячейке Ultra Win Grid (инфраструктура). Я сохраняю эти данные в качестве переменной (MAX) в базе данных.

Ответ №1:

С Infragistics у вас есть множество вариантов реализации этой функции. Позвольте мне показать вам самый простой способ:

  1. Задайте свойства столбца после установки свойства Grid.DataSource:
 UltraGridColumn c = null;
/// initialize c here. Lets suppose that it has a "rtf" key.
c.Style = ColumnStyle.FormattedTextEditor;
((FormattedLinkEditor) c.Editor).UnderlineLinks = UnderlineLink.Always;
((FormattedLinkEditor)c.Editor).LinkClicked  = new Infragistics.Win.FormattedLinkLabel.LinkClickedEventHandler(rtfColumnn_LinkClicked);
c.MaskClipMode = MaskMode.Raw;
((FormattedLinkEditor) c.Editor).TreatValueAs = TreatValueAs.FormattedText;
  
  1. Позволяет пользователям открывать ссылки в тексте rtf:
 private void rtfColumnn_LinkClicked(object sender, Infragistics.Win.FormattedLinkLabel.LinkClickedEventArgs e)
{
    e.OpenLink = true;
}
  
  1. Подпишитесь на событие перед вводом режима редактирования:
 bindingGrid.BeforeEnterEditMode  = this.Grid_BeforeEnterEditMode;
  
  1. И показывать хороший редактор infragistics rtf вместо редактирования в ячейке:
 private void Grid_BeforeEnterEditMode(object sender, System.ComponentModel.CancelEventArgs e)
{
    if (Grid.ActiveCell.Column.Key=="rtf")
        {
            Infragistics.Win.SupportDialogs.FormattedTextEditor.FormattedTextUIEditorForm rtf_frm =
                new FormattedTextUIEditorForm();
            rtf_frm.Value = Grid.ActiveCell.Value;
            DialogResult dresult = rtf_frm.ShowDialog();
            if (dresult == DialogResult.OK)
            {
                Grid.ActiveCell.Value = rtf_frm.Value;
            }

            e.Cancel = true;
            return;
        }
}