'宣言 Public Event ChangeEdit As System.EventHandler
public event System.EventHandler ChangeEdit
'宣言 Public Event ChangeEdit As System.EventHandler
public event System.EventHandler ChangeEdit
このイベントは、グリッドが編集モードになっていて、エディタの内容が変更されたときに発生します。これは、ユーザーがエディタに入力するか、新しい項目をドロップダウンリストで選択した場合です。
このイベントが発生したときに、新しいエディタの内容はグリッドセルにはまだ適用されていません。 Editorプロパティを使用して、新しい内容をチェックできます。
次のコードは、 ChangeEdit イベントを使用して入力内容に応じて行の高さを変更します。
Private Sub frmAutoSizeEdit_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load fg.Styles.Normal.WordWrap = True End Sub Private Sub fg_AfterEdit(ByVal sender As Object, ByVal e As C1.Win.FlexGrid.RowColEventArgs) Handles fg.AfterEdit fg.AutoSizeRow(e.Row) End Sub Private Sub fg_ChangeEdit(ByVal sender As Object, ByVal e As System.EventArgs) Handles fg.ChangeEdit ' テキストの高さを測定します。 Dim g As Graphics = fg.CreateGraphics() Dim sf As StringFormat = New StringFormat() Dim wid As Integer = fg.Cols(fg.Col).WidthDisplay - 2 Dim text As String = fg.Editor.Text Dim sz As SizeF = g.MeasureString(text, fg.Font, wid, sf) ' 必要に応じて行の高さを調整します。 Dim row As C1.Win.FlexGrid.Row = fg.Rows(fg.Row) If sz.Height + 4 > row.HeightDisplay Then row.HeightDisplay = CType(sz.Height, Integer) + 4 End If End Sub
private void frmAutoSizeEdit_Load(object sender, System.EventArgs e) { fg.Styles.Normal.WordWrap = true; } private void fg_AfterEdit(object sender, C1.Win.FlexGrid.RowColEventArgs e) { fg.AutoSizeRow(e.Row); } private void fg_ChangeEdit(object sender, System.EventArgs e) { using(Graphics g = fg.CreateGraphics()) { // テキストの高さを測定します。 StringFormat sf = new StringFormat(); int wid = fg.Cols[fg.Col].WidthDisplay - 2; string text = fg.Editor.Text; SizeF sz = g.MeasureString(text, fg.Font, wid, sf); // 必要に応じて行の高さを調整します。 C1.Win.FlexGrid.Row row = fg.Rows[fg.Row]; if(sz.Height + 4 > row.HeightDisplay) { row.HeightDisplay = (int)sz.Height + 4; } } }