هل يمكن جعل عناوين الهيدر بشكل عمودي - مصمم هاوي - 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]
|