منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
هل يمكن جعل عناوين الهيدر بشكل عمودي - نسخة قابلة للطباعة

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



هل يمكن جعل عناوين الهيدر بشكل عمودي - مصمم هاوي - 10-04-24

سؤال:
هل يمكن جعل العناوين في الهيدر بشكل عمودي ؟
وإن كان ممكن فما هو الكود ؟
أرجو أن تعذروني على هذا السؤال؛ لأنه لو كان بالإمكان فعل ذلك فسوف يفيدني في فكرتي المراد تنفيذها إن شاء الله تعالى


RE: هل يمكن جعل عناوين الهيدر بشكل عمودي - عبد العزيز البسكري - 11-04-24

جرب هذا ..
كود :
   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



RE: هل يمكن جعل عناوين الهيدر بشكل عمودي - مصمم هاوي - 16-04-24

(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]