VS 2008 etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
VS 2008 etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

14 Aralık 2009 Pazartesi

DataGridView Drag-Drop (Sürükle-Bırak)

Datagridview’de satırların yerlerini sürükle-bırak ile değiştirmek isterseniz, aşağıdaki 4 eventtaki (MouseMove, MouseDown, DragDrop, DragOver) değişiklikleri yapmanız yeterli olacaktır:

private Rectangle dragBoxFromMouseDown;
private int rowIndexFromMouseDown;
private int rowIndexOfItemUnderMouseToDrop;
private void datagridview1_MouseMove(object sender, MouseEventArgs e)
{
    if ((e.Button & MouseButtons.Left) == MouseButtons.Left)
    {
        // If the mouse moves outside the rectangle, start the drag.
        if (dragBoxFromMouseDown != Rectangle.Empty &&
            !dragBoxFromMouseDown.Contains(e.X, e.Y))
        {
            // Proceed with the drag and drop, passing in the list item. 
            if (datagridview1.Rows.Count != 0)
            {
                DragDropEffects dropEffect = datagridview1.DoDragDrop(
                  datagridview1.Rows[rowIndexFromMouseDown], DragDropEffects.Move);
            }
        }
    }
}

20 Ekim 2009 Salı

DataGridView - 4 (AutoGenerateColumns)

Tanımladığım sütunlar herkeste düzgün görünürken sadece bir arkadaşımızda program çalıştığında, sütunların yeri olduğundan farklı olarak geliyordu. Bunu da sütunlarda değişiklik yapınca hata almasıyla fark ettik. Meğer, datagrid'in datasource'ını değiştirmeden önce;

dgProTaskTable.AutoGenerateColumns = false;

belirtmezsem sütunları kendi kendine yeniden generate ediyormuş. Sütunların yerinin neden sadece bir bilgisayarde değiştiğini bilmiyorum ama tek satırla hatayı çözmüş oldum :)

DataGridView - 3 (CurrentCellDirtyStateChanged)

Karşılaştığım diğer bir sorun, DataGridView'de runtime'da yapılan değişikliklerin hemen algılanmaması.

DataGridView - 2 (Combobox SelectedIndexChanged)

Karşılaştığım diğer bir sorun, Combobox'ların SelectedIndexChanged event'ının olmaması veya ulaşamamak. İnternette şöyle bir öneri vardı ne kadar doğru bilemem ama ben uyguladım oldu:

14 Ekim 2009 Çarşamba

DataGridView -1 (DataPropertyName)

Son yaptığım projede, tablo içinde combobox kullanımı istedi müşteriler. Ben de her zaman listeleme işlemi için ListView kullandığımdan ve onda da o özellik olmadığından bir arayış içine girdim. Sonunda da DataGridView'i keşfettim (Ben keşfetmedim aslında Mehmet Arslan keşfettirdi :) ). Projemde bugün itibariyle bittiğinden ancak bugün yazabildim bu yazıyı.

29 Aralık 2008 Pazartesi

VS2008'de Custom Project Template Oluşturmak

VS2008'de yeni proje açarken veya add new item ile yeni item eklerken her zaman kullandığımız ortak bir template oluşturmak isteyebiliriz. Ben project template için yaptım ama item template'in de bir farkı yok.

Bu konuda pek yapılmış bir örnek bulamamıştım. Bu yüzden bütün adımları anlatmaya çalışacağım.