none
Datagridview Tasarımı

Yanıtlar

  • Merhabalar,

    Bende WPF'i öneririm bu durum için ama illa da datagridview ile yapılacaksa buradaki örneğe bakabilirsiniz. 

    C# olarak düzenlenmş hali : 

         

    privatevoidForm1_Load(objectsenderEventArgse)
            {

    this.dataGridView1.Columns.Add("Kilometer""From");
    this.dataGridView1.Columns.Add("Kilometer""To");
    this.dataGridView1.Columns.Add("Summer""Weekday");
    this.dataGridView1.Columns.Add("Summer""Weekend");
    this.dataGridView1.Columns.Add("Winter""Weekday");
    this.dataGridView1.Columns.Add("Winter""Weekend");

    for (intj = 6j <= this.dataGridView1.ColumnCount - 1j++)
                {
    this.dataGridView1.Columns[j].Width = 45;
                }

    this.dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing;
    this.dataGridView1.ColumnHeadersHeight = this.dataGridView1.ColumnHeadersHeight * 2;
    this.dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomCenter;
    this.dataGridView1.CellPainting += dataGridView1_CellPainting;
    this.dataGridView1.Paint += dataGridView1_Paint;
    this.dataGridView1.Scroll += dataGridView1_Scroll;
    this.dataGridView1.ColumnWidthChanged += dataGridView1_ColumnWidthChanged;
            }

    privatevoiddataGridView1_CellPainting(objectsenderDataGridViewCellPaintingEventArgse)
            {
    if (e.RowIndex == -1 && e.ColumnIndex > -1)
                {
    Rectangler2 = e.CellBounds;
    r2.Y += e.CellBounds.Height / 2;
    r2.Height = e.CellBounds.Height / 2;
    e.PaintBackground(r2true);
    e.PaintContent(r2);
    e.Handled = true;
                }
            }

    privatevoiddataGridView1_ColumnWidthChanged(objectsenderDataGridViewColumnEventArgse)
            {
    RectanglertHeader = this.dataGridView1.DisplayRectangle;
    rtHeader.Height = this.dataGridView1.ColumnHeadersHeight / 2;
    this.dataGridView1.Invalidate(rtHeader);
            }

    privatevoiddataGridView1_Paint(objectsenderPaintEventArgse)
            {
    string[] header1 = {
    "Kilometer",
    "Summer",
    "Winter"
    };
    intj = 0;
    while (j < 6)
                {
    Rectangler1 = this.dataGridView1.GetCellDisplayRectangle(j, -1true);
    intw2 = this.dataGridView1.GetCellDisplayRectangle(j, -1true).Width;
    r1.X += 1;
    r1.Y += 1;
    r1.Width = r1.Width + w2 - 2;
    r1.Height = r1.Height / 2 - 2;
    e.Graphics.FillRectangle(newSolidBrush(this.dataGridView1.ColumnHeadersDefaultCellStyle.BackColor), r1);
    StringFormatformat = newStringFormat();
    format.Alignment = StringAlignment.Center;
    format.LineAlignment = StringAlignment.Center;
    if ((j == 2))
                    {
    e.Graphics.DrawString(header1[j / 2], this.dataGridView1.ColumnHeadersDefaultCellStyle.FontnewSolidBrush(this.dataGridView1.ColumnHeadersDefaultCellStyle.ForeColor), r1format);
                    }
    j += 2;
                }
            }

    privatevoiddataGridView1_Scroll(objectsenderScrollEventArgse)
            {
    RectanglertHeader = this.dataGridView1.DisplayRectangle;
    rtHeader.Height = this.dataGridView1.ColumnHeadersHeight / 2;
    this.dataGridView1.Invalidate(rtHeader);
            }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    Microsoft bu servisi kullanıcılarına yardım etme, Microsoft ürünleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ücretsiz sunmaktadır.
    Bu içerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi bir sorumluluk üstlenildiği anlamına gelmez.
    Facebook Üzerinden Takip Et!
    Twitter'da Takip Et!

    • Yanıt Olarak İşaretleyen Emresan 14 Haziran 2012 Perşembe 19:13
    14 Haziran 2012 Perşembe 07:47

Tüm Yanıtlar

  • Tam istediğiniz yanıt olmasa bile sanırım bir yerlerden başlamanıza yarayacaktır.

    http://social.msdn.microsoft.com/Forums/tr-TR/csharptr/thread/7a869d9d-8b1e-4560-b1ac-231e060edaa0#x_Soru32

    12 Haziran 2012 Salı 13:43
  • Tam istediğiniz yanıt olmasa bile sanırım bir yerlerden başlamanıza yarayacaktır.

    http://social.msdn.microsoft.com/Forums/tr-TR/csharptr/thread/7a869d9d-8b1e-4560-b1ac-231e060edaa0#x_Soru32

    Teşekkür ederim bunun dışında yardımcı olabilecek var mı ve üst sütunları da resimdeki gibi yapabilir miyiz ?
    12 Haziran 2012 Salı 17:21
  • wpf te winforma göre daha kolay bir şekilde yapılabilir sanırım 
    13 Haziran 2012 Çarşamba 14:28
  • Merhabalar,

    Bende WPF'i öneririm bu durum için ama illa da datagridview ile yapılacaksa buradaki örneğe bakabilirsiniz. 

    C# olarak düzenlenmş hali : 

         

    privatevoidForm1_Load(objectsenderEventArgse)
            {

    this.dataGridView1.Columns.Add("Kilometer""From");
    this.dataGridView1.Columns.Add("Kilometer""To");
    this.dataGridView1.Columns.Add("Summer""Weekday");
    this.dataGridView1.Columns.Add("Summer""Weekend");
    this.dataGridView1.Columns.Add("Winter""Weekday");
    this.dataGridView1.Columns.Add("Winter""Weekend");

    for (intj = 6j <= this.dataGridView1.ColumnCount - 1j++)
                {
    this.dataGridView1.Columns[j].Width = 45;
                }

    this.dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing;
    this.dataGridView1.ColumnHeadersHeight = this.dataGridView1.ColumnHeadersHeight * 2;
    this.dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomCenter;
    this.dataGridView1.CellPainting += dataGridView1_CellPainting;
    this.dataGridView1.Paint += dataGridView1_Paint;
    this.dataGridView1.Scroll += dataGridView1_Scroll;
    this.dataGridView1.ColumnWidthChanged += dataGridView1_ColumnWidthChanged;
            }

    privatevoiddataGridView1_CellPainting(objectsenderDataGridViewCellPaintingEventArgse)
            {
    if (e.RowIndex == -1 && e.ColumnIndex > -1)
                {
    Rectangler2 = e.CellBounds;
    r2.Y += e.CellBounds.Height / 2;
    r2.Height = e.CellBounds.Height / 2;
    e.PaintBackground(r2true);
    e.PaintContent(r2);
    e.Handled = true;
                }
            }

    privatevoiddataGridView1_ColumnWidthChanged(objectsenderDataGridViewColumnEventArgse)
            {
    RectanglertHeader = this.dataGridView1.DisplayRectangle;
    rtHeader.Height = this.dataGridView1.ColumnHeadersHeight / 2;
    this.dataGridView1.Invalidate(rtHeader);
            }

    privatevoiddataGridView1_Paint(objectsenderPaintEventArgse)
            {
    string[] header1 = {
    "Kilometer",
    "Summer",
    "Winter"
    };
    intj = 0;
    while (j < 6)
                {
    Rectangler1 = this.dataGridView1.GetCellDisplayRectangle(j, -1true);
    intw2 = this.dataGridView1.GetCellDisplayRectangle(j, -1true).Width;
    r1.X += 1;
    r1.Y += 1;
    r1.Width = r1.Width + w2 - 2;
    r1.Height = r1.Height / 2 - 2;
    e.Graphics.FillRectangle(newSolidBrush(this.dataGridView1.ColumnHeadersDefaultCellStyle.BackColor), r1);
    StringFormatformat = newStringFormat();
    format.Alignment = StringAlignment.Center;
    format.LineAlignment = StringAlignment.Center;
    if ((j == 2))
                    {
    e.Graphics.DrawString(header1[j / 2], this.dataGridView1.ColumnHeadersDefaultCellStyle.FontnewSolidBrush(this.dataGridView1.ColumnHeadersDefaultCellStyle.ForeColor), r1format);
                    }
    j += 2;
                }
            }

    privatevoiddataGridView1_Scroll(objectsenderScrollEventArgse)
            {
    RectanglertHeader = this.dataGridView1.DisplayRectangle;
    rtHeader.Height = this.dataGridView1.ColumnHeadersHeight / 2;
    this.dataGridView1.Invalidate(rtHeader);
            }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    Microsoft bu servisi kullanıcılarına yardım etme, Microsoft ürünleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ücretsiz sunmaktadır.
    Bu içerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi bir sorumluluk üstlenildiği anlamına gelmez.
    Facebook Üzerinden Takip Et!
    Twitter'da Takip Et!

    • Yanıt Olarak İşaretleyen Emresan 14 Haziran 2012 Perşembe 19:13
    14 Haziran 2012 Perşembe 07:47
  • Merhabalar,

    Bende WPF'i öneririm bu durum için ama illa da datagridview ile yapılacaksa buradaki örneğe bakabilirsiniz. 

    C# olarak düzenlenmş hali : 

         

    privatevoidForm1_Load(objectsenderEventArgse)
            {

    this.dataGridView1.Columns.Add("Kilometer""From");
    this.dataGridView1.Columns.Add("Kilometer""To");
    this.dataGridView1.Columns.Add("Summer""Weekday");
    this.dataGridView1.Columns.Add("Summer""Weekend");
    this.dataGridView1.Columns.Add("Winter""Weekday");
    this.dataGridView1.Columns.Add("Winter""Weekend");

    for (intj = 6j <= this.dataGridView1.ColumnCount - 1j++)
                {
    this.dataGridView1.Columns[j].Width = 45;
                }

    this.dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing;
    this.dataGridView1.ColumnHeadersHeight = this.dataGridView1.ColumnHeadersHeight * 2;
    this.dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomCenter;
    this.dataGridView1.CellPainting += dataGridView1_CellPainting;
    this.dataGridView1.Paint += dataGridView1_Paint;
    this.dataGridView1.Scroll += dataGridView1_Scroll;
    this.dataGridView1.ColumnWidthChanged += dataGridView1_ColumnWidthChanged;
            }

    privatevoiddataGridView1_CellPainting(objectsenderDataGridViewCellPaintingEventArgse)
            {
    if (e.RowIndex == -1 && e.ColumnIndex > -1)
                {
    Rectangler2 = e.CellBounds;
    r2.Y += e.CellBounds.Height / 2;
    r2.Height = e.CellBounds.Height / 2;
    e.PaintBackground(r2true);
    e.PaintContent(r2);
    e.Handled = true;
                }
            }

    privatevoiddataGridView1_ColumnWidthChanged(objectsenderDataGridViewColumnEventArgse)
            {
    RectanglertHeader = this.dataGridView1.DisplayRectangle;
    rtHeader.Height = this.dataGridView1.ColumnHeadersHeight / 2;
    this.dataGridView1.Invalidate(rtHeader);
            }

    privatevoiddataGridView1_Paint(objectsenderPaintEventArgse)
            {
    string[] header1 = {
    "Kilometer",
    "Summer",
    "Winter"
    };
    intj = 0;
    while (j < 6)
                {
    Rectangler1 = this.dataGridView1.GetCellDisplayRectangle(j, -1true);
    intw2 = this.dataGridView1.GetCellDisplayRectangle(j, -1true).Width;
    r1.X += 1;
    r1.Y += 1;
    r1.Width = r1.Width + w2 - 2;
    r1.Height = r1.Height / 2 - 2;
    e.Graphics.FillRectangle(newSolidBrush(this.dataGridView1.ColumnHeadersDefaultCellStyle.BackColor), r1);
    StringFormatformat = newStringFormat();
    format.Alignment = StringAlignment.Center;
    format.LineAlignment = StringAlignment.Center;
    if ((j == 2))
                    {
    e.Graphics.DrawString(header1[j / 2], this.dataGridView1.ColumnHeadersDefaultCellStyle.FontnewSolidBrush(this.dataGridView1.ColumnHeadersDefaultCellStyle.ForeColor), r1format);
                    }
    j += 2;
                }
            }

    privatevoiddataGridView1_Scroll(objectsenderScrollEventArgse)
            {
    RectanglertHeader = this.dataGridView1.DisplayRectangle;
    rtHeader.Height = this.dataGridView1.ColumnHeadersHeight / 2;
    this.dataGridView1.Invalidate(rtHeader);
            }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    Microsoft bu servisi kullanıcılarına yardım etme, Microsoft ürünleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ücretsiz sunmaktadır.
    Bu içerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi bir sorumluluk üstlenildiği anlamına gelmez.
    Facebook Üzerinden Takip Et!
    Twitter'da Takip Et!

    Çok iyi Bir seviyede değilim ondan Bunu yapmakta da zorlanacağım Wpf Hiç bulaşmadım henüz belki ilerde artık kendimi geliştirdikçe


    14 Haziran 2012 Perşembe 19:17