在Infragistics ultragrid列中添加按钮+文本

时间:2014-01-09 05:43:47

标签: winforms infragistics ultrawingrid wingrid

我使用的是Infragistics 2013版。 我有一个要求,我必须在winforms ultragrid的列中添加一个按钮和一个文本。 该按钮将打开一个弹出屏幕,允许用户选择将在网格列中显示为文本的值。

谢谢。

4 个答案:

答案 0 :(得分:6)

将列的Style设置为ColumnStyle。EditButton。例如:

UltraGrid1.DisplayLayout.Bands(0).Columns("ColName").Style = Infragistics.Win.UltraWinGrid.ColumnStyle.EditButton 

然后您可以处理UltraGrids CellButtonClicked事件以了解何时单击按钮,e.Cell将告知您单击了哪个单元格:

Private Sub UltraGrid1_ClickCellButton(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinGrid.CellEventArgs) Handles ultraGrid1.ClickCellButton
   Debug.WriteLine("Button in " & e.Cell.Value.ToString() & " cell was clicked.")
End Sub

答案 1 :(得分:1)

好的,得到了​​答案。

必须将列样式设置为EditButton。

UltraGrid1.DisplayLayout.Bands(0).Columns("ColName").Style = Infragistics.Win.UltraWinGrid.ColumnStyle.EditButton

答案 2 :(得分:1)

只是稍微扩展答案:如果您希望按钮始终可见(而不是仅当您单击包含按钮的单元格时),您可能还需要设置ButtonDisplayStyle:

UltraGrid1.DisplayLayout.Bands(0).Columns("ColName").ButtonDisplayStyle = UltraWinGrid.ButtonDisplayStyle.Always

此外,如果您想要更多地控制按钮的外观或位置,那么来自Infragistics的Mike Saltzman的这些信息可能会有用:

  

如果您想要左对齐的按钮,则需要多个按钮   相同的单元格,或不填充整个单元格但包含文本的按钮   和/或图像,您可以使用编辑器。基本方法是一些东西   像这样:

     

1)在表单中添加一个编辑器控件(如UltraTextEditor,for   例子)。

     

2)使用ButtonsLeft和/或ButtonsRight集合添加   你想要的按钮。您可以设置每个按钮的文本和外观。

     

3)在代码中,将Column(或Cell)的EditorControl设置为   编辑控制。这基本上就像设置样式但在一个   更健壮的方式。

     

4)要处理按钮的点击事件,您需要处理事件   在编辑器上 - 而不是网格。例如,如果它只是正常的   按钮,你会使用EditorButtonClick。事件args将通过你   一个Context,它将返回按钮所在的网格单元格   点击。

答案 3 :(得分:0)

简单。

 private void ultraGrid1_InitializeRow(object sender, InitializeRowEventArgs e)
        {
            // We only need to do this the first time the row is initialized.
            if (e.ReInitialize == false)
            {
                e.Row.Cells["Button"].Value = "Click Here";
            }
        }
        }