منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[VB.NET] تنسيق أعمدة DataGridView - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [VB.NET] تنسيق أعمدة DataGridView (/showthread.php?tid=50810)



تنسيق أعمدة DataGridView - أبو خالد الشكري - 18-12-24

السلام عليكم

عندي DataGridView فيها عمودين
أريد كود يجعل تنسيق العمود رقم 0 يكون من اليمين إلى اليسار (لأن البيانات التي ستكون فيه باللغة العربية)
وتنسيق العمود رقم 1 يكون من اليسار إلى اليمين (لأن البيانات التي تكنب فيه ستكون باللغة الإنجليزية)

ولكم خالص الشكر 


RE: تنسيق أعمدة DataGridView - justforit - 18-12-24

و عليكم السلام ورحمة الله و بركاته
المثال التالي بالكود كل حقل يتم فحص محتواه هل حروف عربية ام لا و لم اجرب الارقام يمكنك التعديل و اقتصار الاكواد على العمود بدلا من حقوله كلها.
التغيير الاوتوماتيكي لمحاذاة النص في حقول الداتاقريدفيو


RE: تنسيق أعمدة DataGridView - أبو خالد الشكري - 18-12-24

شكرا جزيلا لك الأخ العزيز justforit


RE: تنسيق أعمدة DataGridView - aljzazy - 21-12-24

لتغيير اتجاه النص داخل أعمدة معينة في DataGridView حسب الحاجة، يمكنك استخدام الخاصية
كود :
DefaultCellStyle.Alignment
لتحديد اتجاه النص داخل كل عمود.
في حالتك، إذا كنت تريد أن يكون العمود الأول (رقم 0) من اليمين إلى اليسار، والعمود الثاني (رقم 1) من اليسار إلى اليمين، يمكنك استخدام الكود التالي:

الكود:
vb
نسخ الكود
كود :
' قم بتطبيق التنسيق على DataGridView
Private Sub FormatDataGridViewColumns()
   ' تنسيق العمود الأول (العمود 0) ليكون من اليمين إلى اليسار
   DataGridView1.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight

   ' تنسيق العمود الثاني (العمود 1) ليكون من اليسار إلى اليمين
   DataGridView1.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
End Sub

شرح الكود:
    DataGridViewContentAlignment
  1. :
      MiddleRight
    • : يجعل النص محاذيًا إلى اليمين (للغة العربية).
      MiddleLeft
    • : يجعل النص محاذيًا إلى اليسار (للغة الإنجليزية).
  2. DefaultCellStyle
  3. :
    • الخاصية
      DefaultCellStyle
    • تُستخدم لتحديد التنسيقات الافتراضية للخلايا داخل العمود.
  4. استدعِ الدالة
    FormatDataGridViewColumns
  5. بعد إعداد أو تحميل البيانات في الـ
    DataGridView
  6. .

تطبيق الكود:
يمكنك استدعاء هذه الدالة في أي وقت، مثلًا بعد تحميل البيانات في DataGridView:
vb
نسخ الكود
كود :
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
   ' إعداد البيانات أو تحميلها هنا
   FormatDataGridViewColumns()
End Sub

إضافة تحسينات (اختياري):
يمكنك أيضًا تحديد اتجاه النص بناءً على القيم (إذا كنت لا تعرف مسبقًا نوع البيانات):
vb
نسخ الكود
كود :
Private Sub DataGridView1_CellFormatting(sender As Object, e As DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
   If e.ColumnIndex = 0 Then
       ' العمود الأول: محاذاة لليمين
       e.CellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
   ElseIf e.ColumnIndex = 1 Then
       ' العمود الثاني: محاذاة لليسار
       e.CellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
   End If
End Sub
ملاحظات إضافية:
  • تأكد من ضبط الخاصية
    RightToLeft
  • على مستوى النموذج (Form) أو DataGridView إذا كنت تستخدم اللغة العربية بشكل عام.
  • إذا كانت لديك أعمدة أخرى تحتاج إلى تخصيص، يمكنك تعديل الكود ليتناسب مع احتياجاتك.