更改样式时,UltraGrid事件ClickCell被禁用

时间:2017-05-22 20:29:33

标签: c# infragistics ultragrid

我有一个函数,可以在单元格上单击时展开和缩回超网格的线条。我使用以下代码:

columnUltraGrid.CellMultiLine = Infragistics.Win.DefaultableBoolean.True;
columnUltraGrid.Layout.Override.RowSizing = RowSizing.AutoFree;
columnUltraGrid.Layout.Override.RowSizingAutoMaxLines = 4;
columnUltraGrid.Layout.Bands[0].AutoPreviewEnabled = true;

从我添加此代码的那一刻起:

columnUltraGrid.Style = Infragistics.Win.UltraWinGrid.ColumnStyle.FormattedText; 
columnUltraGrid.CellDisplayStyle = Infragistics.Win.UltraWinGrid.CellDisplayStyle.FormattedText;

有问题的单元停止调用ClickCell事件。有问题的单元停止调用clickcell事件,我需要使用此命令删除文本中包含的html格式,我没有找到另一种方式,如果有人可以通知我,否则格式化文本或启用事件调用我谢谢。 单元格的内容是一个html,如: <' span style =' font-weight:bold;'> hello

1 个答案:

答案 0 :(得分:1)

我认为您的问题与列的样式无关,也不与单元格的样式有关。第一次单击单元格时,默认情况下它进入编辑模式。此时,在单元格上绘制TextBox,允许最终用户编辑单元格的数据。如果再次单击单元格,则实际上是单击此TextBox,它会触发单击事件。 您可以通过两种方式克服这个问题:

  1. 如果您不允许用户将单元格文本集CellClickAction编辑为CellSelect或RowSelect,那么对您的方案更好;
  2. 如果您允许最终用户编辑单元格的文本,那么您将需要处理Infragistics中使用的TextBox的Click事件。为此,请处理网格的ControlAdded事件。网格的任何单元格第一次进入编辑模式时TextBox控件将添加到网格的Controls集合中。然后,相同的TextBox用于编辑模式中的任何单元格。
  3. 您可以这样做:

    private void UltraGrid1_ControlAdded(System.Object sender, System.Windows.Forms.ControlEventArgs e)
    {
        e.Control.Click += UltraGrid1_Editor_Click;
    }
    

    当出于任何原因从网格中删除TextBox时,不要忘记订阅:

    private void UltraGrid1_ControlRemoved(System.Object sender, System.Windows.Forms.ControlEventArgs e)
    {
        e.Control.Click -= UltraGrid1_Editor_Click;
    }