الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

طلب طريقة تحديد عرض كل حقل على حدة

مغلق
بدأه IGBSpeed في 7 يناير 2006 · 5 رد · 528 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم .

أخواني الكرام :

السلام عليكم ورحمة الله وبركاته ،،، وبعد:-

هذه من أولى المشاركات لي بهذا المنتدى الرائع وكنت أطلب طريقة تحديد عرض كل Column في الـ DataGrid على حدة مثلاً :

أنا لدي DataGrid يتكون من 5 حقول كالتالي:-

رقم الطالب : إسم الطالب كاملاً : الصف : تاريخ الميلاد : العنوان .

وأتضح أن رقم الطالب يكفي له مثلاً 80 بكسل .

إسم الطالب كاملاً يكفي له 150 بكسل .

الصف يكفي له 70 بكسل .

تاريخ الميلاد يكفي له 100 بكسل .

والعنوان 300 بكسل .

مالعمل .

إستفد من هذا :-

       DataGrid1.PreferredColumnWidth = 200

ولكن هذا يغير عرض جميع الحقول مرة واحدة .

#2

ابحث في المنتدي عن tablestyles

سجد ما تبحث عنة

#3

شكراً جزيلاً أخي الكريم : KARIMSOFT

وجدت الحل وهو كالتالي:-

    Sub BindingDG()
        Dim dg As DataGrid
        dg = DataGrid1
        Try
            ' You must clear out the TableStyles collection before 
            dg.TableStyles.Clear()

            Dim DataGridTableStyle1 As New DataGridTableStyle
            With DataGridTableStyle1
                .MappingName = DataSet31.Tbl_Companys.TableName
            End With


            Dim DataGridTextBoxColumn1 As New DataGridRedColorTextBoxColumn
            With DataGridTextBoxColumn1
                .Alignment = System.Windows.Forms.HorizontalAlignment.Center
                .HeaderText = "رقم الطالب"
                .MappingName = "Student_ID"
                .NullText = String.Empty
                .Width = 80
            End With

            Dim DataGridTextBoxColumn2 As New DataGridRedColorTextBoxColumn
            With DataGridTextBoxColumn2
                .HeaderText = "إسم الطالب بالكامل"
                .MappingName = "Student_Name"
                .Width = 150
            End With


            Dim DataGridTextBoxColumn3 As New DataGridRedColorTextBoxColumn
            With DataGridTextBoxColumn3
                .HeaderText = "الصف"
                .MappingName = "Student_Class"
                .Width = 70
            End With

            Dim DataGridTextBoxColumn4 As New DataGridRedColorTextBoxColumn
            With DataGridTextBoxColumn4
                .HeaderText = "تاريخ الميلاد"
                .MappingName = "Student_BirthDate"
                .Width = 100
            End With

            Dim DataGridTextBoxColumn5 As New DataGridRedColorTextBoxColumn
            With DataGridTextBoxColumn5
                .HeaderText = "العنوان"
                .MappingName = "Student_Address"
                .Width = 300
            End With


            DataGridTableStyle1.GridColumnStyles.AddRange _
                (New DataGridColumnStyle() {DataGridTextBoxColumn1, DataGridTextBoxColumn2, DataGridTextBoxColumn3, DataGridTextBoxColumn4, DataGridTextBoxColumn5})
            dg.TableStyles.Add(DataGridTableStyle1)

        Catch ex As Exception
            Throw ex
        End Try

    End Sub

وشكراً جزيلاً لكم ،،،،، .

#4

ستجد طريقه اخري من خلال الخصائص

#5

مرحباً مرةً أخرى أخي العزيز : كريم سوفت .

في البداية أنا نسيت أضيف تعريف الكلاس : (DataGridRedColorTextBoxColumn) .

أعمل Component جديدة وأضف بها الكود التالي :

Option Strict Off
Option Explicit On 

Imports Microsoft.VisualBasic
Imports System
Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports System.Windows.Forms



'القيم ذات اللون الأول
'***************************************************
'__________________________________________________
Public Class DataGridRedColorTextBoxColumn
    Inherits DataGridTextBoxColumn

    Protected Overloads Overrides Sub Paint(ByVal g As Graphics, ByVal bounds As Rectangle, ByVal source As CurrencyManager, ByVal rowNum As Integer, ByVal backBrush As Brush, ByVal foreBrush As Brush, ByVal alignToRight As Boolean)
        Try
            Dim o As Object
            'o = Me.GetColumnValueAtRow(source, rowNum)
            o = rowNum
            Dim s
            'o = 2
            Dim odivid2, TheBackColor, TheForeColor
            odivid2 = o Mod 2

            If odivid2 <> Nothing Then 'فردي
                TheBackColor = Color.Aqua
                TheForeColor = Color.Black
            Else 'زوجي
                TheBackColor = Color.LightYellow
                TheForeColor = Color.Black
            End If

            backBrush = New SolidBrush(TheBackColor)
            foreBrush = New SolidBrush(TheForeColor)

        Catch ex As Exception
            MsgBox(ex.Message)
        Finally
            MyBase.Paint(g, bounds, source, rowNum, backBrush, foreBrush, alignToRight)
        End Try

    End Sub

End Class

    '    # End Region

أنت تقصد خاصية (TableStyles) ومن ثم نضيف ستايل جديد ونختار تفاصيل (GridColumnStyles) .

وهذه أنا على علمٍ بها وجزاك الله خيراً ،،،

ولكن في هذه الحالة عند إستخدام TableStyles تفصيلي لا نستطيع وضع AutoFormat للـ Grid ، يعني شكل من النماذج الجاهزة في طريقة تخطيط الـ Grid . " مثلاً أريد أن ألون صفوف الـ Grid بلونين ؟!! .

وبهذا أنا قمت وبالإستفادة من المشاركة السابقة عن نفس الموضوع :

/index.php?showtopic=83568

وتمت الفائدة والحمد لله ،،،

وبالتوفيق للجميع .

#6

/index.ph...&hl=tablestyles

اذهب لهذا الرابط بعد تنفيذ خواص التعريب ياتي خواص التوين اجعل الجريد في خصية tablestyles مثل المرفق اصبح صف وصف

اي خدمة

GridColor.bmp

هذا الموضوع مغلق.

مواضيع مشابهة