منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : تنسيق أعمدة DataGridView
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم

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

ولكم خالص الشكر 
و عليكم السلام ورحمة الله و بركاته
المثال التالي بالكود كل حقل يتم فحص محتواه هل حروف عربية ام لا و لم اجرب الارقام يمكنك التعديل و اقتصار الاكواد على العمود بدلا من حقوله كلها.
التغيير الاوتوماتيكي لمحاذاة النص في حقول الداتاقريدفيو
شكرا جزيلا لك الأخ العزيز justforit
لتغيير اتجاه النص داخل أعمدة معينة في 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 إذا كنت تستخدم اللغة العربية بشكل عام.
  • إذا كانت لديك أعمدة أخرى تحتاج إلى تخصيص، يمكنك تعديل الكود ليتناسب مع احتياجاتك.