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

نسخة كاملة : هل يمكن جعل عناوين الهيدر بشكل عمودي
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
سؤال:
هل يمكن جعل العناوين في الهيدر بشكل عمودي ؟
وإن كان ممكن فما هو الكود ؟
أرجو أن تعذروني على هذا السؤال؛ لأنه لو كان بالإمكان فعل ذلك فسوف يفيدني في فكرتي المراد تنفيذها إن شاء الله تعالى
جرب هذا ..
كود :
   Private Sub DataGridView1_CellPainting(sender As Object, e As DataGridViewCellPaintingEventArgs) Handles DataGridView1.CellPainting
       If e.RowIndex = -1 AndAlso e.ColumnIndex >= 0 Then
           e.PaintBackground(e.ClipBounds, True)
           Dim rect As Rectangle = Me.dataGridView1.GetColumnDisplayRectangle(e.ColumnIndex, True)
           Dim titleSize As Size = TextRenderer.MeasureText(e.Value.ToString(), e.CellStyle.Font)
           If Me.DataGridView1.ColumnHeadersHeight < titleSize.Width Then
               Me.DataGridView1.ColumnHeadersHeight = titleSize.Width
           End If
           e.Graphics.TranslateTransform(0, titleSize.Width)
           e.Graphics.RotateTransform(-90.0F)
           e.Graphics.DrawString(e.Value.ToString(), Me.Font, Brushes.Black, New PointF(rect.Y - (dataGridView1.ColumnHeadersHeight - titleSize.Width), rect.X))
           e.Graphics.RotateTransform(90.0F)
           e.Graphics.TranslateTransform(0, -titleSize.Width)
           e.Handled = True
       End If
   End Sub
ثم بالفورم لود بعد تحميل البيانات ..
كود :
     Me.DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
       Me.DataGridView1.ColumnHeadersHeight = 50
       Me.DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader

       AddHandler DataGridView1.CellPainting, AddressOf DataGridView1_CellPainting
(11-04-24, 05:05 PM)عبد العزيز البسكري كتب : [ -> ]
جرب هذا ..
كود :
   Private Sub DataGridView1_CellPainting(sender As Object, e As DataGridViewCellPaintingEventArgs) Handles DataGridView1.CellPainting
       If e.RowIndex = -1 AndAlso e.ColumnIndex >= 0 Then
           e.PaintBackground(e.ClipBounds, True)
           Dim rect As Rectangle = Me.dataGridView1.GetColumnDisplayRectangle(e.ColumnIndex, True)
           Dim titleSize As Size = TextRenderer.MeasureText(e.Value.ToString(), e.CellStyle.Font)
           If Me.DataGridView1.ColumnHeadersHeight < titleSize.Width Then
               Me.DataGridView1.ColumnHeadersHeight = titleSize.Width
           End If
           e.Graphics.TranslateTransform(0, titleSize.Width)
           e.Graphics.RotateTransform(-90.0F)
           e.Graphics.DrawString(e.Value.ToString(), Me.Font, Brushes.Black, New PointF(rect.Y - (dataGridView1.ColumnHeadersHeight - titleSize.Width), rect.X))
           e.Graphics.RotateTransform(90.0F)
           e.Graphics.TranslateTransform(0, -titleSize.Width)
           e.Handled = True
       End If
   End Sub
ثم بالفورم لود بعد تحميل البيانات ..
كود :
     Me.DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
       Me.DataGridView1.ColumnHeadersHeight = 50
       Me.DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader

       AddHandler DataGridView1.CellPainting, AddressOf DataGridView1_CellPainting

تقبل الله مني ومنك وغفر لي ولك
وعبدك مبارك
وبارك الله فيك وجزاك كلّ خيراً أخي الحبيب عبد العزيز البسكري على ردّك القيم
وأعذرني لم أنتبه لتعليقك إلا هذه اللحظة

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

[attachment=29501]