DJ KRAZEさんの提案のおかげで手に入れました。
リポジトリ TextEdit の EditValueChanging イベントで、e.NewValue を DevExpress ラベルに割り当て、その PreferredSize.Widht を列幅と比較します。大きい場合は、小さくなるまで文字を削除し、テキストを e.NewValue に割り当てます。
カーソルが 0 にジャンプしていたため、(DevExpress FAQ によると) Invoke を実行して TextEdit.SelectionStart プロパティを変更する必要がありました。くそ!VB-2008 は匿名メソッドを受け入れないため、別の方法で配置する必要がありました:)
ありがとう。
よろしく。
Private Sub RepositoryItemTextEditDescrip_EditValueChanging(ByVal sender As Object, ByVal e As DevExpress.XtraEditors.Controls.ChangingEventArgs) Handles RepositoryItemTextEditDescrip.EditValueChanging
Static lbl As New DevExpress.XtraEditors.LabelControl
Dim tx As DevExpress.XtraEditors.TextEdit = sender
Dim s As String = e.NewValue.ToString.Split(vbCr)(0)
lbl.Text = s
lbl.Font = tx.Font
If lbl.PreferredSize.Width >= colDescrip.Width - 15 Then
Do Until lbl.PreferredSize.Width <= colDescrip.Width - 15 Or s.Length = 0
s = s.Remove(s.Length - 1)
lbl.Text = s
Loop
End If
Dim i As Integer = tx.SelectionStart
e.NewValue = s
BeginInvoke(New Action(Of TextEdit, Integer)(AddressOf sbTxSelectIndx), New Object() {tx, i})
End Sub
Private Sub sbTxSelectIndx(ByVal tx As TextEdit, ByVal i As Integer)
tx.Select(i, 0)
End Sub