C# 将DataGridView的特定单元格设置为“对齐”;“从左到右”;
我有一个从右到左对齐的C# 将DataGridView的特定单元格设置为“对齐”;“从左到右”;,c#,winforms,datetime-format,right-to-left,C#,Winforms,Datetime Format,Right To Left,我有一个从右到左对齐的DataGridView(因为程序的语言是波斯语),但是一些特定的列,如clmn_Email应该从左到右,寄存器DateTime的列也应该从左到右 RTL align中的日期时间显示如下 ب.ظ1397/07/07 08:32:14 但它应该像这样展示 1397/07/07 08:32:14ب.ظ 无论如何,我先转到集合,然后转到defaultCellStyle,然后将对齐方式更改为“中左”,但它根本不起作用,没有任何更改 有人能帮我吗?(我没有发现这样的问题。如果重复,请
DataGridView
(因为程序的语言是波斯语),但是一些特定的列,如clmn_Email
应该从左到右,寄存器DateTime
的列也应该从左到右
RTL align中的日期时间显示如下
ب.ظ1397/07/07 08:32:14
但它应该像这样展示
1397/07/07 08:32:14ب.ظ
无论如何,我先转到集合
,然后转到defaultCellStyle
,然后将对齐方式更改为“中左”,但它根本不起作用,没有任何更改
有人能帮我吗?(我没有发现这样的问题。如果重复,请将问题的链接发送给我)。问题已解决。
如果DataGridView是从右到左,则要从左到右设置列对齐方式,应转到properties>collection>DefultCellStyle>set alignment=middleRight
(除此选项外,我将对齐方式设置为从右到左,但效果相反!!)。
对于显示日期时间的问题,我执行以下操作:
public static string ReversePersianDateTime(PersianDateTime pdt)
{
return pdt.DayName + " " + pdt.Hour + ":" + pdt.Minute + ":" + pdt.Second + " " + pdt.Year + "/" + pdt.Month + "/" + pdt.Day;
}
尝试将
DataGridCellStyle.FormatProvider
设置为FormatProvider=CultureInfo.InvariantCulture
。或指定具有所需日期格式的特定区域性<例如,code>CultureInfo.CreateSpecificCulture(“en-US”),或者更简单地定义DataGridViewCellStyle.Format=“hh:mm:ss yyyy/mm/dd”
并将其用作DefaultCellStyle
格式。它将在RTL语言中反转。@Jimi tnx对于您的重播,我尝试在frmclient.Designer.cs
中做一些事情,如您所说,但不幸的是,我没有成功。这取决于您如何创建DGV列。应在创建时设置其格式提供程序
。而格式
字符串可以在不同的时间设置。如果设置[DataGridViewCell].Style.Format=“hh:mm:ss yyyy/mm/dd”代码>,RTL ime格式将其呈现为“yyyy/MM/dd hh:MM:ss”
。如果然后设置.Alignment=DataGridViewContentAlignment.MiddleRight
,ime格式将使其左对齐。