Windows Forms DataGridView Denetimindeki Boyutlandırma Seçenekleri
DataGridView satırlar, sütunlar ve üstbilgiler birçok farklı oluşumun sonucu olarak boyutu değiştirebilir. Aşağıdaki tabloda bu oluşumlar gösterilmektedir.
| Oluşum | Açıklama |
|---|---|
| Kullanıcı yeniden boyutlandırma | Kullanıcılar, satır, sütun veya üstbilgi bölücüleri sürükleyerek veya çift tıklayarak boyut ayarlamaları yapabilir. |
| Yeniden boyutlandırma denetimi | Sütun dolgusu modunda, denetim genişliği değiştiğinde sütun genişlikleri değişir; Örneğin, denetim üst biçimine yerleştirildiğinde ve Kullanıcı formu yeniden boyutlandırdığında. |
| Hücre değeri değişikliği | İçerik tabanlı otomatik boyutlandırma modlarında, boyutlar yeni görüntüleme değerlerine uyacak şekilde değişir. |
| Yöntem çağrısı | Programlı içerik tabanlı yeniden boyutlandırma, yöntem çağrısı sırasında hücre değerlerine göre fırsatçı boyut ayarlamaları yapmanızı sağlar. |
| Özellik ayarı | Ayrıca, belirli yükseklik ve genişlik değerlerini de ayarlayabilirsiniz. |
Varsayılan olarak, Kullanıcı yeniden boyutlandırma etkindir, otomatik boyutlandırma devre dışıdır ve sütunlarından daha geniş hücre değerleri kırpılır.
Aşağıdaki tabloda, varsayılan davranışı ayarlamak veya belirli etkilere ulaşmak için belirli boyutlandırma seçeneklerini kullanmak üzere kullanabileceğiniz senaryolar gösterilmektedir.
| Senaryo | Uygulama |
|---|---|
| Yatay kaydırma çubuğunu görüntülemeden, denetimin tamamının genişliğini kaplayan görece az sayıda sütunda benzer boyutta verileri görüntülemek için sütun dolgusu modunu kullanın. | AutoSizeColumnsModeÖzelliğini olarak ayarlayın Fill . |
| Sütun dolgusu modunu, değişen boyutlarda görüntüleme değerleriyle kullanın. | AutoSizeColumnsModeÖzelliğini olarak ayarlayın Fill . Sütun FillWeight özelliklerini ayarlayarak veya AutoResizeColumns denetimi verilerle doldurduktan sonra denetim yöntemini çağırarak göreli sütun genişliklerini başlatın. |
| Sütun dolgusu modunu, değişen önem derecesine sahip değerlerle birlikte kullanın. | AutoSizeColumnsModeÖzelliğini olarak ayarlayın Fill . MinimumWidthBazı verileri her zaman görüntülemesi gereken sütunlar için büyük değerler ayarlayın veya belirli sütunlar için Fill modundan başka bir boyutlandırma seçeneği kullanın. |
| Denetim arka planının görüntülenmesini önlemek için sütun dolgusu modunu kullanın. | AutoSizeModeSon sütunun özelliğini olarak ayarlayın Fill ve diğer sütunlar için diğer boyutlandırma seçeneklerini kullanın. Diğer sütunlar kullanılabilir alanın çok büyük bölümünü kullanıyorsa, MinimumWidth son sütunun özelliğini ayarlayın. |
| Simge veya KIMLIK sütunu gibi sabit genişlikte bir sütun görüntüler. | AutoSizeModeNoneResizable Sütunu için ve olarak ayarlayın False . WidthÖzelliği ayarlayarak veya AutoResizeColumn denetimi verilerle doldurduktan sonra denetim yöntemini çağırarak genişliğini başlatın. |
| Kırpma oluşmasını önlemek ve alan kullanımını iyileştirmek için hücre içerikleri değiştiğinde boyutları otomatik olarak ayarlayın. | Otomatik boyutlandırma özelliğini, içerik tabanlı boyutlandırma modunu temsil eden bir değere ayarlayın. Büyük miktarlarda verilerle çalışırken bir performans cezasından kaçınmak için, yalnızca görüntülenen satırları hesaplayan bir boyutlandırma modu kullanın. |
| Birçok satırla çalışırken performans cezalarını önlemek için boyutları, görüntülenecek satırlardaki değerlere uyacak şekilde ayarlayın. | Otomatik veya programlı yeniden boyutlandırmadan uygun boyutlandırma modu numaralandırma değerlerini kullanın. Kaydırma sırasında boyutları yeni görüntülenecek satırlarda sığacak şekilde ayarlamak için bir olay işleyicisinde bir yeniden boyutlandırma yöntemi çağırın Scroll . Kullanıcı çift tıklama yeniden boyutlandırmayı özelleştirmek için, yalnızca görüntülenen satırlardaki değerlerin yeni boyutları belirlemesi için bir RowDividerDoubleClick veya olay işleyicisinde bir yeniden boyutlandırma yöntemi çağırın ColumnDividerDoubleClick . |
| Performans cezalarını önlemek veya Kullanıcı yeniden boyutlandırmayı etkinleştirmek için boyutları yalnızca belirli zamanlarda hücre içeriğine uyacak şekilde ayarlayın. | Bir olay işleyicisinde içerik tabanlı bir yeniden boyutlandırma yöntemi çağırın. Örneğin, DataBindingComplete bağlamayı tamamladıktan sonra boyutları başlatmak için olayını kullanın ve CellValidatedCellValueChanged Kullanıcı düzenlemelerini veya bir bağlantılı veri kaynağındaki değişiklikleri dengelemek üzere boyutları ayarlamak için veya olayını işleyin. |
| Çok satırlı hücre içerikleri için satır yüksekliklerini ayarlayın. | Sütun genişliklerinin metin paragraflarını görüntülemek için uygun olduğundan emin olun ve yükseklikleri ayarlamak için otomatik veya programlı içerik tabanlı satır boyutlandırmayı kullanın. Ayrıca, çok satırlı içeriğe sahip hücrelerin bir WrapMode hücre stili değeri kullanılarak görüntülendiğinden emin olun True . Genellikle, sütun genişliklerini korumak veya satır yükseklikleri ayarlamadan önce belirli genişliklere ayarlamak için bir otomatik sütun boyutlandırma modu kullanırsınız. |
Fareyle yeniden boyutlandırma
Varsayılan olarak, kullanıcılar hücre değerlerine göre otomatik boyutlandırma modu kullanmayan satırları, sütunları ve üst bilgileri yeniden boyutlandırabilirler. Kullanıcıların sütun dolgusu modu gibi diğer modlarda yeniden boyutlandırmasını engellemek için aşağıdaki özelliklerden birini veya daha fazlasını ayarlayın DataGridView :
Ayrıca, kullanıcıların özelliklerini ayarlayarak tek tek satırları veya sütunları yeniden boyutlandırmasını engelleyebilirsiniz Resizable . Varsayılan olarak, Resizable özellik değeri AllowUserToResizeColumns sütunlar için özellik değerini ve satırlar için özellik değerini temel alır AllowUserToResizeRows . Açıkça Resizable veya olarak ayarlarsanız, TrueFalse belirtilen değer bu satır veya sütun için denetim değerini geçersiz kılar. ResizableNotSet Devralmayı geri yüklemek için olarak ayarlayın.
, NotSet Değer devralmayı geri yüklerken, ResizableNotSet satır veya sütun bir denetime eklenmediği takdirde özellik hiçbir şekilde bir değer döndürmez DataGridView . ResizableBir satır veya sütunun özellik değerinin devralınıp alınmayacağını belirlemeniz gerekiyorsa, State özelliğini inceleyin. StateDeğer ResizableSet bayrağı içeriyorsa, Resizable özellik değeri devralınmaz.
Otomatik boyutlandırma
Denetimde iki tür otomatik boyutlandırma vardır DataGridView : sütun dolgusu modu ve içerik tabanlı otomatik boyutlandırma.
Sütun dolgusu modu denetimdeki görünür sütunların denetimin görüntüleme alanının genişliğini doldurmasını sağlar. bu mod hakkında daha fazla bilgi için, Windows Forms DataGridView denetimindeki sütun dolgusu modunabakın.
Ayrıca, satırları, sütunları ve başlıkları, boyutlarını otomatik olarak hücre içeriklerine uyacak şekilde ayarlamak için de yapılandırabilirsiniz. Bu durumda, hücre içerikleri değiştiğinde Boyut ayarlaması oluşur.
Not
Sanal modu kullanarak özel bir veri önbelleğinde hücre değerlerini korudıysanız, Kullanıcı bir hücre değerini düzenlediğinde, ancak önbelleğe alınmış bir değeri bir olay işleyicisi dışında değiştirdiğinizde gerçekleşmediğinde otomatik boyutlandırma oluşur CellValuePushed . Bu durumda, UpdateCellValue denetimin hücre görüntüsünü güncelleştirmesine zorlamak ve geçerli otomatik boyutlandırma modlarını uygulamak için yöntemini çağırın.
İçerik tabanlı otomatik boyutlandırma yalnızca bir boyut için etkinse (yani, satırlar için veya sütunlar için ya da satırlar için WrapMode de etkinse), aynı zamanda diğer boyutun her değiştirişinde boyut ayarı da oluşur. Örneğin, satırlar, ancak sütunlar otomatik boyutlandırma için yapılandırılmamışsa ve WrapMode etkinse, kullanıcılar sütun ayırıcılarını bir sütunun genişliğini değiştirmek için sürükleyebilir ve satır yükseklikleri, hücre içeriğinin hala tam olarak görüntülenmesini sağlayacak şekilde otomatik olarak ayarlanır.
İçerik tabanlı otomatik boyutlandırma için hem satır hem de sütun yapılandırırsanız ve WrapMode etkinleştirilirse DataGridView Denetim, hücre içerikleri değiştiğinde boyutları ayarlar ve yeni boyutları hesaplarken ideal bir hücre yüksekliği genişliği oranını kullanır.
Üst bilgiler ve satırlar için boyutlandırma modunu ve denetim değerini geçersiz kılmayan sütunları yapılandırmak için aşağıdaki özelliklerden birini veya daha fazlasını ayarlayın DataGridView :
Tek bir sütun için denetimin sütun boyutlandırma modunu geçersiz kılmak için, AutoSizeMode özelliğini dışında bir değer olarak ayarlayın NotSet . Bir sütunun boyutlandırma modu aslında özelliği tarafından belirlenir InheritedAutoSizeMode . Bu özelliğin değeri, AutoSizeMode değer olmadığı takdirde NotSet , denetimin AutoSizeColumnsMode değeri Devralınana kadar sütunun özellik değerini temel alır.
Büyük miktarlarda verilerle çalışırken dikkatli bir şekilde içerik tabanlı otomatik yeniden boyutlandırmayı kullanın. Performans cezalarını önlemek için, denetimdeki her satırı analiz etmek yerine yalnızca görüntülenen satırlara göre boyutları hesaplayan otomatik boyutlandırma modlarını kullanın. En yüksek performans için, yeni veriler yüklendikten hemen sonra, belirli zamanlarda yeniden boyutlandırabilmeniz için, programlama yoluyla yeniden boyutlandırmayı kullanın.
İçerik tabanlı otomatik boyutlandırma modları, satır veya sütun Visible özelliğini ya da Denetim RowHeadersVisible veya ColumnHeadersVisible özellikleri olarak ayarlayarak gizlediğiniz satırları, sütunları veya üstbilgileri etkilemez false . Örneğin, bir sütun, büyük bir hücre değerine sığacak şekilde otomatik olarak boyutlandırıldığından, büyük hücre değerini içeren satır silinirse gizli sütun boyutunu değiştirmez. Görünürlük değiştiğinde otomatik boyutlandırma gerçekleşmez, bu nedenle Column özelliğinin ' i Visible ' olarak değiştirmek, true geçerli içeriğine göre boyutunu yeniden hesaplamaya zorlamaz.
Programlı içerik tabanlı yeniden boyutlandırma, görünürlüğü ne olursa olsun satırları, sütunları ve başlıkları etkiler.
Programlı yeniden boyutlandırma
Otomatik boyutlandırma devre dışı bırakıldığında, aşağıdaki özellikler aracılığıyla satır, sütun veya üst bilgilerin tam genişliğini veya yüksekliğini programlı bir şekilde ayarlayabilirsiniz:
Ayrıca, aşağıdaki yöntemleri kullanarak satırları, sütunları ve başlıkları içeriğine uyacak şekilde yeniden boyutlandırabilirsiniz:
Bu yöntemler, sürekli yeniden boyutlandırma için yapılandırmak yerine satırları, sütunları veya başlıkları bir kez yeniden boyutlandıracaktır. Yeni boyutlar, tüm hücre içeriklerini kırpma olmadan görüntüleyecek şekilde otomatik olarak hesaplanır. Ancak özellik değerlerine sahip sütunları program aracılığıyla yeniden boyutlandırdığınızda, InheritedAutoSizeModeFill hesaplanmış içerik tabanlı genişlikler sütun özelliği değerlerini orantılı şekilde ayarlamak için kullanılır FillWeight ve aslında sütun genişlikleri, tüm sütunların denetimin kullanılabilir görüntü alanını doldurması için bu yeni oranlarına göre hesaplanır.
Programlı yeniden boyutlandırma, sürekli yeniden boyutlandırmayla performans cezalarını önlemek için yararlıdır. Ayrıca, Kullanıcı yeniden boyutlandırılabilir satırlar, sütunlar ve üstbilgiler için ve sütun dolgusu modu için başlangıç boyutları sağlamak yararlı olur.
Genellikle programlı yeniden boyutlandırma yöntemlerini belirli zamanlarda çağıracaksınız. Örneğin, verileri yükledikten hemen sonra tüm sütunları programlama yoluyla yeniden boyutlandırabilir veya belirli bir hücre değeri değiştirildikten sonra programlı olarak belirli bir satırı yeniden boyutlandırabilirsiniz.
Içerik tabanlı boyutlandırma davranışını özelleştirme
DataGridViewDataGridViewCell.GetPreferredSize , DataGridViewRow.GetPreferredHeight Veya yöntemlerini geçersiz kılarak DataGridViewColumn.GetPreferredWidth veya türetilmiş bir denetimde korumalı yeniden boyutlandırma yöntemi yüklerini çağırarak, türetilmiş hücre, satır ve sütun türleriyle çalışırken boyutlandırma davranışlarını özelleştirebilirsiniz DataGridView . Korunan yeniden boyutlandırma yöntemi aşırı yüklemeleri, çok geniş veya uzun hücrelerden oluşan ideal bir hücre yüksekliğini genişlik oranını elde etmek üzere çiftler halinde çalışmak üzere tasarlanmıştır. Örneğin, AutoResizeRows(DataGridViewAutoSizeRowsMode,Boolean) yönteminin aşırı yüklemesini çağırır AutoResizeRows ve false parametresi için değerini geçirirseniz Boolean , aşırı yükleme satırdaki hücrelerin ideal yüksekliklerini ve genişliklerini hesaplar, ancak yalnızca satır yüksekliklerini ayarlar. Daha sonra AutoResizeColumns sütun genişliklerinin hesaplanmış ideal olarak ayarlanması için yöntemini çağırmanız gerekir.
İçerik tabanlı boyutlandırma seçenekleri
Boyutlandırma özellikleri ve yöntemleri tarafından kullanılan numaralandırmalar, içerik tabanlı boyutlandırma için benzer değerlere sahiptir. Bu değerlerle, tercih edilen boyutları hesaplamak için kullanılan hücreleri sınırlandırabilirsiniz. Tüm boyutlandırma numaralamalarında, görüntülenen hücrelere başvuran adlara sahip değerler, hesaplamalarını görüntülenen satırlardaki hücrelerle sınırlandırır. Satırları dışlama, büyük miktarda satırla çalışırken performans cezalarından kaçınmak için yararlıdır. Ayrıca hesaplamaları üst bilgi veya üst bilgi olmayan hücrelerde hücre değerleriyle kısıtlarsınız.
Ayrıca bkz.
- DataGridView
- DataGridView.AllowUserToResizeColumns
- DataGridView.AllowUserToResizeRows
- DataGridView.ColumnHeadersHeightSizeMode
- DataGridView.RowHeadersWidthSizeMode
- DataGridViewBand.Resizable
- DataGridView.AutoSizeColumnsMode
- DataGridView.AutoSizeRowsMode
- DataGridViewColumn.AutoSizeMode
- DataGridViewColumn.InheritedAutoSizeMode
- DataGridView.RowHeadersWidth
- DataGridView.ColumnHeadersHeight
- DataGridViewRow.Height
- DataGridViewColumn.Width
- DataGridView.AutoResizeColumn
- DataGridView.AutoResizeColumns
- DataGridView.AutoResizeColumnHeadersHeight
- DataGridView.AutoResizeRow
- DataGridView.AutoResizeRows
- DataGridView.AutoResizeRowHeadersWidth
- DataGridViewAutoSizeRowMode
- DataGridViewAutoSizeRowsMode
- DataGridViewAutoSizeColumnMode
- DataGridViewAutoSizeColumnsMode
- DataGridViewColumnHeadersHeightSizeMode
- DataGridViewRowHeadersWidthSizeMode
- Windows Forms DataGridView Denetiminde Hücre ve Satırları Yeniden Boyutlandırma
- Windows Forms DataGridView Denetiminde Sütun Doldurma Modu
- Nasıl yapılır: Windows Forms DataGridView Denetiminin Boyutlandırma Modlarını Ayarlama