2014-01-09 28 views
2

我正在使用Infragistics 2013版本。 我有一個要求,我必須添加一個按鈕以及winforms ultragrid中的列中的文本。 該按鈕將打開一個彈出屏幕,允許用戶選擇一個值,該值將顯示爲網格列中的文本。在Infragistics超網格列中添加按鈕+文本

謝謝。

+0

好的得到了答案。 必須將列樣式設置爲EditButton。 UltraGrid1.DisplayLayout.Bands(0).Columns(「ColName」)。Style = Infragistics.Win.UltraWinGrid.ColumnStyle.EditButton – Ratish

+0

然後發表評論作爲答案並接受它 – Steve

回答

1

好得到了答案。不得不將列樣式設置爲EditButton。

UltraGrid1.DisplayLayout.Bands(0).Columns("ColName").Style = Infragistics.Win.UltraWinGrid.ColumnStyle.EditButton 
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 
+0

問題的第二部分是添加* * text **到單元格。爲了實現這一點,處理網格事件'InitializeRow'。請參閱Mike Saltzman的回覆 http:// www。infragistics.com/community/forums/t/61866.aspx – whiteshooz

1

只是稍微延長了答案:如果你希望按鈕可見所有的時間(而不是僅僅當你點擊進入包含按鈕的單元格),你可能還需要設置ButtonDisplayStyle:

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

另外,如果你想通過按鈕的外觀或位置的更多控制,然後從麥克趙敏此信息來自Infragistics的可能是有用的:

如果你想按鈕,左對齊,不止一個BU在同一單元格中,或者不填充整個單元格但包含文本 和/或圖像的按鈕,則可以使用編輯器。基本的方法是這樣的 :

1)添加一個編輯控件到你的窗體(如UltraTextEditor,例如 例子)。

2)使用ButtonsLeft和/或ButtonsRight集合添加所需的 按鈕。您可以設置每個按鈕的文本和外觀。

3)在代碼中,將列(或單元格)的EditorControl設置爲 編輯器控件。這基本上就像設置風格一樣,但採用更加穩健的方式。

4)要處理按鈕的點擊事件,您可以在編輯器上處理事件 - 不是網格。例如,如果它只是一個普通的 按鈕,則可以使用EditorButtonClick。事件參數將傳遞給您 a上下文,該上下文將返回點擊的按鈕爲 的網格單元格。