منظور اینه که باید برای تعیین استایل از کلاس DataGridViewCell یا کلاسهای فرزند آن مثلا DataGridViewTextBoxCell به ارث برسونید.
برای این منظور یک مثال کوچک (هر چند ناقص) در نحوه RightToLeft کردن میزنم:
یک پروژه Windows Application ایجاد کنید و یک کنترل DataGridView1 بهش اضافه کنید.
به قسمت ویرایش کدها بروید و کدها رو به شکل زیر تغییر بدید:
Public Class Form1
Public Class TextBoxRtlCell
Inherits DataGridViewTextBoxCell
Protected Overrides Sub Paint(ByVal graphics As System.Drawing.Graphics, ByVal clipBounds As System.Drawing.Rectangle, ByVal cellBounds As System.Drawing.Rectangle, ByVal rowIndex As Integer, ByVal cellState As System.Windows.Forms.DataGridViewElementStates, ByVal value As Object, ByVal formattedValue As Object, ByVal errorText As String, ByVal cellStyle As System.Windows.Forms.DataGridViewCellStyle, ByVal advancedBorderStyle As System.Windows.Forms.DataGridViewAdvancedBorderSty le, ByVal paintParts As System.Windows.Forms.DataGridViewPaintParts)
If Me.Selected Then
graphics.FillRectangle(Brushes.DarkBlue, cellBounds)
Else
graphics.FillRectangle(Brushes.White, cellBounds)
End If
graphics.DrawRectangle(Pens.Blue, cellBounds)
cellBounds.Offset(3, 3)
Dim myText As String = CType(formattedValue, String)
TextRenderer.DrawText(graphics, myText, cellStyle.Font, cellBounds, cellStyle.ForeColor, cellStyle.BackColor, TextFormatFlags.RightToLeft)
End Sub
End Class
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim column As DataGridViewColumn
column = New DataGridViewColumn(New TextBoxRtlCell())
column.ValueType = GetType(String)
Me.DataGridView1.Columns.Add("A", "A")
Me.DataGridView1.Columns.Add(column)
End Sub
Private Sub DataGridView1_EditingControlShowing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlSho wingEventArgs) Handles DataGridView1.EditingControlShowing
If (Me.DataGridView1.CurrentCell.ColumnIndex = 1) Then
e.Control.RightToLeft = Windows.Forms.RightToLeft.Yes
End If
End Sub
End Class
که ستون دوم بعنوان ستونی راست به چپ و ستون اول بصورت چپ به راست خواهد بود.
که ستون راست به چپ توسط کلاس TextBoxRtlCell ایجاد شده و به دیتاگریدویو اضافه شده. متن خودتون رو وارد کنید و میبینید که راست به چپ خواهد بود.
همانطور که میبینید این مثال خیلی خیلی ناقصه... و این نحوه پیاده سازی که من انجام دادم، اصلا جالب نیست، ولی خودتون میتونید روش مناسبی رو برای اینکار انتخاب کنید.