C# 如何在devexpress gridcontrol组件中设置从右向左对齐?

C# 如何在devexpress gridcontrol组件中设置从右向左对齐?,c#,devexpress,C#,Devexpress,如何在devexpress gridcontrol组件中设置从右向左对齐?(不使用wpf) 就像这张照片: 在版本15.1中,通过以下控件引入了从右到左(RTL)支持: 图表 栅格控件(栅格、树列表、轴栅格、垂直栅格和特性栅格) 数据编辑器和控件(范围控制、评级控制等) 功能区、菜单和相关控件(BackstageView、AppMenu等) 布局控件和布局容器(TabControl、GroupControl等) 导航控件(导航栏、平铺控件等) 应用程序UI控件(停靠、DocumentManag

如何在devexpress gridcontrol组件中设置从右向左对齐?(不使用wpf)

就像这张照片:


在版本15.1中,通过以下控件引入了从右到左(RTL)支持:

  • 图表
  • 栅格控件(栅格、树列表、轴栅格、垂直栅格和特性栅格)
  • 数据编辑器和控件(范围控制、评级控制等)
  • 功能区、菜单和相关控件(BackstageView、AppMenu等)
  • 布局控件和布局容器(TabControl、GroupControl等)
  • 导航控件(导航栏、平铺控件等)
  • 应用程序UI控件(停靠、DocumentManager等)
因此,只需将
GridControl.RightToLeft
属性设置为
RightToLeft.Yes
,您将获得RTL布局。

您可以使用ms技巧:

创建新组件并在代码视图中添加以下行:

Imports System.ComponentModel
Imports DevExpress.XtraGrid.Localization
Imports System.Windows.Forms
Imports System.Drawing

Public Class MirroredDevExpressGrid
   Private _Mirrored As Boolean
   Const WS_EX_LAYOUTRTL = &H400000

   Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams
      Get
         Dim CP As System.Windows.Forms.CreateParams = _
               MyBase.CreateParams
         If Mirrored Then
            CP.ExStyle = CP.ExStyle Or WS_EX_LAYOUTRTL
            MyBase.Refresh()
         End If
         Return CP
      End Get
   End Property

   <Description("Change to the right-to-left layout."), _
  DefaultValue(False), Localizable(True), _
  Category("Appearance"), Browsable(True)> _
   Public Property Mirrored() As Boolean
      Get
         Return _Mirrored
      End Get
      Set(ByVal value As Boolean)
         If _Mirrored <> value Then
            _Mirrored = value
            MyBase.OnRightToLeftChanged(EventArgs.Empty)
         End If
      End Set
   End Property

   Private Sub InitializeComponent()
      Me.GridView1 = New DevExpress.XtraGrid.Views.Grid.GridView
      CType(Me.GridView1, System.ComponentModel.ISupportInitialize).BeginInit()
      CType(Me, System.ComponentModel.ISupportInitialize).BeginInit()
      Me.SuspendLayout()
      Me.LookAndFeel.SetSkinStyle("Money Twins")
      Me.LookAndFeel.UseDefaultLookAndFeel = False
      Me.Mirrored = True
      '
      'GridView1
      '
      Me.GridView1.GridControl = Me
      Me.GridView1.Name = "GridView1"
      '
      'MirroredDevExpressGrid
      '
      Me.MainView = Me.GridView1
      Me.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView1})
         CType(Me.GridView1, System.ComponentModel.ISupportInitialize).EndInit()
      CType(Me, System.ComponentModel.ISupportInitialize).EndInit()
      Me.ResumeLayout(False)

   End Sub


   Private Sub MirroredDevExpressGrid_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) Handles Me.MouseMove

      Invalidate()
   End Sub

End Class

and in designer class:

you can use ms trick:

make new component and in code view add the following lines:

Imports System.ComponentModel
Imports DevExpress.XtraGrid.Localization
Imports System.Windows.Forms
Imports System.Drawing

Public Class MirroredDevExpressGrid
   Private _Mirrored As Boolean
   Const WS_EX_LAYOUTRTL = &H400000

   Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams
      Get
         Dim CP As System.Windows.Forms.CreateParams = _
               MyBase.CreateParams
         If Mirrored Then
            CP.ExStyle = CP.ExStyle Or WS_EX_LAYOUTRTL
            MyBase.Refresh()
         End If
         Return CP
      End Get
   End Property

   <Description("Change to the right-to-left layout."), _
  DefaultValue(False), Localizable(True), _
  Category("Appearance"), Browsable(True)> _
   Public Property Mirrored() As Boolean
      Get
         Return _Mirrored
      End Get
      Set(ByVal value As Boolean)
         If _Mirrored <> value Then
            _Mirrored = value
            MyBase.OnRightToLeftChanged(EventArgs.Empty)
         End If
      End Set
   End Property

   Private Sub InitializeComponent()
      Me.GridView1 = New DevExpress.XtraGrid.Views.Grid.GridView
      CType(Me.GridView1, System.ComponentModel.ISupportInitialize).BeginInit()
      CType(Me, System.ComponentModel.ISupportInitialize).BeginInit()
      Me.SuspendLayout()
      Me.LookAndFeel.SetSkinStyle("Money Twins")
      Me.LookAndFeel.UseDefaultLookAndFeel = False
      Me.Mirrored = True
      '
      'GridView1
      '
      Me.GridView1.GridControl = Me
      Me.GridView1.Name = "GridView1"
      '
      'MirroredDevExpressGrid
      '
      Me.MainView = Me.GridView1
      Me.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView1})
         CType(Me.GridView1, System.ComponentModel.ISupportInitialize).EndInit()
      CType(Me, System.ComponentModel.ISupportInitialize).EndInit()
      Me.ResumeLayout(False)

   End Sub


   Private Sub MirroredDevExpressGrid_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) Handles Me.MouseMove

      Invalidate()
   End Sub

End Class

and in designer class:

Partial Class MirroredDevExpressGrid
   Inherits DevExpress.XtraGrid.GridControl

   <System.Diagnostics.DebuggerNonUserCode()> _
 Protected Overrides Sub Dispose(ByVal disposing As Boolean)
      MyBase.Dispose(disposing)
   End Sub
   Friend WithEvents GridView1 As DevExpress.XtraGrid.Views.Grid.GridView

End Class
导入System.ComponentModel
导入DevExpress.XtraGrid.Localization
导入System.Windows.Forms
导入系统。绘图
公共类镜像DevedExpressGrid
Private\u镜像为布尔值
施工现场的施工现场=和H400000
受保护的重写只读属性CreateParams()为System.Windows.Forms.CreateParams
得到
Dim CP As System.Windows.Forms.CreateParams=_
MyBase.CreateParams
如果镜像,则
CP.ExStyle=CP.ExStyle或WS_EX_layouttl
MyBase.Refresh()
如果结束
返回CP
结束
端属性
_
公共属性镜像()为布尔值
得到
返回镜像
结束
设置(ByVal值为布尔值)
如果_镜像值,则
_镜像=值
MyBase.OnRightToLeftChanged(EventArgs.Empty)
如果结束
端集
端属性
私有子初始化组件()
Me.GridView 1=新建DevExpress.XtraGrid.Views.Grid.GridView
CType(Me.GridView1,System.ComponentModel.ISupportInitialize.BeginInit())
CType(Me,System.ComponentModel.ISupportInitialize.BeginInit())
Me.SuspendLayout()
Me.LookAndFeel.SetSkinStyle(“金钱双胞胎”)
Me.LookAndFeel.UseDefaultLookAndFeel=False
我是真的
'
“GridView1
'
Me.GridView1.GridControl=Me
Me.GridView1.Name=“GridView1”
'
“MirroredDevExpressGrid
'
Me.MainView=Me.gridview 1
Me.ViewCollection.AddRange(新的DevExpress.XtraGrid.Views.Base.BaseView(){Me.GridView1})
CType(Me.GridView1,System.ComponentModel.ISupportInitialize).EndInit()
CType(Me,System.ComponentModel.ISupportInitialize.EndInit())
Me.ResumeLayout(错误)
端接头
Private Sub-MirroredDevExpressGrid_MouseMove(ByVal sender作为对象,ByVal e作为MouseEventArgs)处理Me.MouseMove
使无效
端接头
末级
在设计师课程中:
您可以使用ms技巧:
创建新组件并在代码视图中添加以下行:
导入System.ComponentModel
导入DevExpress.XtraGrid.Localization
导入System.Windows.Forms
导入系统。绘图
公共类镜像DevedExpressGrid
Private\u镜像为布尔值
施工现场的施工现场=和H400000
受保护的重写只读属性CreateParams()为System.Windows.Forms.CreateParams
得到
Dim CP As System.Windows.Forms.CreateParams=_
MyBase.CreateParams
如果镜像,则
CP.ExStyle=CP.ExStyle或WS_EX_layouttl
MyBase.Refresh()
如果结束
返回CP
结束
端属性
_
公共属性镜像()为布尔值
得到
返回镜像
结束
设置(ByVal值为布尔值)
如果_镜像值,则
_镜像=值
MyBase.OnRightToLeftChanged(EventArgs.Empty)
如果结束
端集
端属性
私有子初始化组件()
Me.GridView 1=新建DevExpress.XtraGrid.Views.Grid.GridView
CType(Me.GridView1,System.ComponentModel.ISupportInitialize.BeginInit())
CType(Me,System.ComponentModel.ISupportInitialize.BeginInit())
Me.SuspendLayout()
Me.LookAndFeel.SetSkinStyle(“金钱双胞胎”)
Me.LookAndFeel.UseDefaultLookAndFeel=False
我是真的
'
“GridView1
'
Me.GridView1.GridControl=Me
Me.GridView1.Name=“GridView1”
'
“MirroredDevExpressGrid
'
Me.MainView=Me.gridview 1
Me.ViewCollection.AddRange(新的DevExpress.XtraGrid.Views.Base.BaseView(){Me.GridView1})
CType(Me.GridView1,System.ComponentModel.ISupportInitialize).EndInit()
CType(Me,System.ComponentModel.ISupportInitialize.EndInit())
Me.ResumeLayout(错误)
端接头
Private Sub-MirroredDevExpressGrid_MouseMove(ByVal sender作为对象,ByVal e作为MouseEventArgs)处理Me.MouseMove
使无效
端接头
末级
在设计师课程中:
部分类MirroredDevExpressGrid
继承DevExpress.XtraGrid.GridControl
_
受保护的重写子处置(ByVal作为布尔值处置)
MyBase.Dispose(Dispose)
端接头
Friend WithEvents GridView 1作为DevExpress.XtraGrid.Views.Grid.GridView
末级

尝试设置为.RightToLeft=System.Windows.Forms.RightToLeft.Yes;此属性存在,但无法显示此组件的初始化代码。使用了哪些其他属性?>“财产存在,但不起作用”-我们不理解。。。请提供更多详细信息/另请参阅我使用的gridControl1.RightToLeft=System.Windows.Forms.RightToLeft.Yes;但不起作用。。。我想改变布局