Aracılığıyla paylaş


DataGrid Denetimine Genel Bakış (Windows Forms)

Dekont

Denetim DataGridView , denetimin DataGrid yerini alır ve denetime işlevsellik ekler; ancak DataGrid isterseniz denetim hem geriye dönük uyumluluk hem de gelecekteki kullanım için korunur. Daha fazla bilgi için bkz . Windows Forms DataGridView ile DataGrid Denetimleri Arasındaki Farklar.

Windows Forms DataGrid denetimi verileri bir dizi satır ve sütun halinde görüntüler. En basit örnek, kılavuzun ilişki içermeyen tek bir tabloya sahip bir veri kaynağına bağlı olmasıdır. Bu durumda veriler, elektronik tablodaki gibi basit satır ve sütunlarda görünür. Verileri diğer denetimlere bağlama hakkında daha fazla bilgi için bkz . Veri Bağlama ve Windows Forms.

DataGrid birden çok ilişkili tablo içeren verilere bağlıysa ve kılavuzda gezinti etkinleştirildiyse, kılavuz her satırda genişleticileri görüntüler. Genişletici ile kullanıcı üst tablodan alt tabloya geçebilir. Bir düğüme tıklanması alt tabloyu ve bir geri düğmesine tıklanması özgün üst tabloyu görüntüler. Bu şekilde, kılavuz tablolar arasındaki hiyerarşik ilişkileri görüntüler.

Aşağıdaki ekran görüntüsünde birden çok tablo içeren verilere bağlı bir DataGrid gösterilmektedir:

A WinForms app showing a DataGrid bound to data with multiple tables.

bir DataGrid veri kümesi için kullanıcı arabirimi, ilgili tablolar arasında gezinme ve zengin biçimlendirme ve düzenleme özellikleri sağlayabilir.

Verilerin görüntülenmesi ve işlenmesi ayrı işlevlerdir: Denetim kullanıcı arabirimini işlerken, veri güncelleştirmeleri Windows Forms veri bağlama mimarisi ve .NET Framework veri sağlayıcıları tarafından işlenir. Bu nedenle, aynı veri kaynağına bağlı birden çok denetim eşitlenmiş durumda kalır.

Dekont

Visual Basic 6.0'daki DataGrid denetimi hakkında bilginiz varsa, Windows Forms DataGrid denetiminde bazı önemli farklar bulacaksınız.

Kılavuz bir DataSetöğesine bağlı olduğunda, sütunlar ve satırlar otomatik olarak oluşturulur, biçimlendirilir ve doldurulur. Daha fazla bilgi için bkz . Veri Bağlama ve Windows Forms. Denetimin oluşturulmasını DataGrid takiben, gereksinimlerinize bağlı olarak sütunları ve satırları ekleyebilir, silebilir, yeniden düzenleyebilir ve biçimlendirebilirsiniz.

Verileri Denetime Bağlama

Denetimin DataGrid çalışması için, tasarım zamanında ve DataMember özelliklerini veya SetDataBinding çalışma zamanında yöntemini kullanarak DataSource bir veri kaynağına bağlı olmalıdır. Bu bağlama , DataGrid veya DataTablegibi DataSet örnek bir veri kaynağı nesnesine işaret edecektir. Denetim, DataGrid veriler üzerinde gerçekleştirilen eylemlerin sonuçlarını gösterir. Verilere özgü eylemlerin çoğu üzerinden değil, veri kaynağı üzerinden gerçekleştirilir DataGrid .

Bağlı veri kümesindeki veriler herhangi bir mekanizma aracılığıyla güncelleştirilirse, DataGrid denetim değişiklikleri yansıtır. Veri kılavuzunda, tablo stillerinde ve sütun stillerinde ReadOnly özelliği olarak falseayarlanmışsa, veri kümesindeki veriler denetim aracılığıyla DataGrid güncelleştirilebilir.

bir kerede DataGrid yalnızca bir tablo gösterilebilir. Tablolar arasında bir üst-alt ilişki tanımlanmışsa, kullanıcı ilgili tablolar arasında geçiş yapabilir ve denetimde DataGrid görüntülenecek tabloyu seçebilir. Denetimi tasarım zamanında veya çalışma zamanında ADO.NET veri kaynağına bağlama DataGrid hakkında bilgi için bkz . Nasıl yapılır: Windows Forms DataGrid Denetimini Bir Veri Kaynağına Bağlama.

Şunlar için DataGrid geçerli veri kaynakları:

Kaynağınız bir veri kümesiyse, veri kümesi formdaki bir nesne veya XML Web hizmeti tarafından forma geçirilen bir nesne olabilir. Yazılan veya yazılmamış veri kümelerine bağlanabilirsiniz.

Bir dizideki öğeler gibi yapıdaki nesneler ortak özellikleri kullanıma sunarsa, denetimi ek yapılara da bağlayabilirsiniz DataGrid . Kılavuz, yapıdaki öğelerin tüm genel özelliklerini görüntüler. Örneğin, denetimi bir müşteri nesneleri dizisine bağlarsanız DataGrid , kılavuz bu müşteri nesnelerinin tüm genel özelliklerini görüntüler. Bazı durumlarda bu, yapıya bağlanabilmenize rağmen sonuçta elde edilen bağlı yapının pratik bir uygulaması olmayabilir. Örneğin, bir tamsayı dizisine bağlanabilirsiniz, ancak Integer veri türü ortak özelliği desteklemediğinden kılavuz hiçbir veri görüntüleyemez.

Öğeleri genel özellikleri kullanıma sunarsa aşağıdaki yapılara bağlanabilirsiniz:

  • Arabirimi uygulayan IList herhangi bir bileşen. Bu, tek boyutlu dizileri içerir.

  • Arabirimi uygulayan IListSource herhangi bir bileşen.

  • Arabirimi uygulayan IBindingList herhangi bir bileşen.

Olası veri kaynakları hakkında daha fazla bilgi için bkz . Windows Forms Tarafından Desteklenen Veri Kaynakları.

Kılavuz Görüntüsü

Denetimin DataGrid yaygın bir kullanımı, bir veri kümesinden tek bir veri tablosu görüntülemektir. Ancak denetim, ilgili tablolar da dahil olmak üzere birden çok tabloyu görüntülemek için de kullanılabilir. Kılavuzun görüntüsü veri kaynağına göre otomatik olarak ayarlanır. Aşağıdaki tabloda çeşitli yapılandırmalar için görüntülenenler gösterilmektedir.

Veri kümesinin içeriği Görüntülenenler
Tek tablo. Tablo bir kılavuzda görüntülenir.
Birden çok tablo. Kılavuz, kullanıcıların görüntülemek istedikleri tabloyu bulmak için gidebilecekleri bir ağaç görünümü görüntüleyebilir.
Birden çok ilişkili tablo. Kılavuz, tabloları seçmek için bir ağaç görünümü görüntüleyebilir veya kılavuzun üst tabloyu görüntülemesini belirtebilirsiniz. Üst tablodaki kayıtlar, kullanıcıların ilgili alt satırlara gitmesine olanak sağlar.

Dekont

Bir veri kümesindeki tablolar kullanılarak DataRelationilişkilendirilir. Ayrıca bkz. Veri kümeleri arasında ilişki oluşturma.

DataGrid Denetim bir tablo görüntülüyorsa ve AllowSorting özelliği olarak trueayarlandığında, sütun üst bilgilerine tıklanarak verilere başvurulabilir. Kullanıcı ayrıca satır ekleyebilir ve hücreleri düzenleyebilir.

Bir tablo kümesi arasındaki ilişkiler, kullanıcılara gezintinin üst/alt yapısı kullanılarak görüntülenir. Üst tablolar en yüksek veri düzeyidir ve alt tablolar da üst tablolardaki tek tek listelerden türetilen veri tablolarıdır. Genişleticiler, alt tablo içeren her üst satırda görüntülenir. Genişleticiye tıklanması, alt tablolara yönelik Web benzeri bağlantıların listesini oluşturur. Kullanıcı bir bağlantı seçtiğinde alt tablo görüntülenir. Üst satırları göster/gizle simgesine (Show/hide parent rows icon) tıklandığında, üst tablo hakkındaki bilgiler gizlenir veya kullanıcı daha önce gizlemişse yeniden görünmesine neden olur. Kullanıcı, daha önce görüntülenen tabloya geri gitmek için bir geri düğmesine tıklayabilir.

Sütunlar ve Satırlar

, DataGrid denetimin TableStyles özelliğinde yer alan bir nesne koleksiyonundan DataGridTableStyleDataGrid oluşur. Tablo stili DataGridColumnStyleGridColumnStylesDataGridTableStyle, .. Özellikler penceresinden TableStyles erişilen koleksiyon düzenleyicilerini kullanarak ve GridColumnStyles özelliklerini düzenleyebilirsiniz.

Denetimle ilişkili herhangi bir DataGridTableStyle öğeye DataGrid üzerinden GridTableStylesCollectionerişilebilir. , GridTableStylesCollection tasarımcıda koleksiyon düzenleyicisiyle veya denetimin DataGridTableStyleDataGridTableStyles özelliği aracılığıyla program aracılığıyla düzenlenebilir.

Aşağıdaki çizimde DataGrid denetimine dahil edilen nesneler gösterilmektedir:

Diagram that shows objects included in the DataGrid control.

Tablo stilleri ve sütun stilleri, özellikleri uygun TableName ve özelliklere ayarlanarak MappingName nesneler ve ColumnNameDataColumn nesnelerle DataTable eşitlenir. Geçerli bir DataGridTableStyle veri kaynağına bağlı bir DataGrid denetime sütun stili olmayan bir eklendiğinde ve MappingName bu tablo stilinin özelliği geçerli TableName bir özelliğe ayarlandığında, bu tablo stili için bir nesne koleksiyonu DataGridColumnStyle oluşturulur. koleksiyonunda bulunan her DataColumn biri için öğesine karşılık gelen DataGridColumnStyle bir eklenirGridColumnStylesCollection.ColumnsDataTable GridColumnStylesCollectionözelliği DataGridTableStylearacılığıyla GridColumnStyles erişilir. üzerinde veya yöntemi GridColumnStylesCollectionkullanılarak Add sütunlar kılavuza eklenebilir veya Remove silinebilir. Daha fazla bilgi için bkz . Nasıl yapılır: Windows Forms DataGrid Denetimine Tablo ve Sütun Ekleme ve Nasıl yapılır: Windows Forms DataGrid Denetiminde Sütunları Silme veya Gizleme.

Sütun türleri koleksiyonu, sınıfı zengin biçimlendirme ve düzenleme özellikleriyle genişletir DataGridColumnStyle . Tüm sütun türleri temel sınıftan devralır DataGridColumnStyle . Oluşturulan sınıf, öğesinin DataType temel aldığı özelliğine DataColumnDataGridColumn bağlıdır. Örneğin, özelliği olarak ayarlanmış bir DataColumnDataType ile ilişkilendirilecektirDataGridBoolColumn.Boolean Aşağıdaki tabloda bu sütun türlerinin her biri açıklanmaktadır.

Sütun Türü Tanım
DataGridTextBoxColumn Verileri biçimlendirilmiş veya biçimlendirilmemiş dizeler olarak kabul eder ve görüntüler. Düzenleme özellikleri, basit TextBoxbir içindeki verileri düzenlemek için olduğu gibi aynıdır. DataGridColumnStyle öğesinden devralır.
DataGridBoolColumn , falseve null değerlerini kabul eder ve görüntülertrue. DataGridColumnStyle öğesinden devralır.

Sütunun sağ kenarına çift tıklanması, sütunu yeniden boyutlandırarak tam başlık ve en geniş girdisini görüntüler.

Tablo Stilleri ve Sütun Stilleri

Denetimin varsayılan biçimini DataGrid oluşturduğunuz anda, veri kılavuzunda belirli tablolar görüntülendiğinde kullanılacak renkleri özelleştirebilirsiniz.

Bu, sınıfın DataGridTableStyle örnekleri oluşturularak elde edilir. Tablo stilleri, denetimin varsayılan biçimlendirmesinden farklı olarak belirli tabloların biçimlendirmesini DataGrid belirtir. Her tabloda aynı anda yalnızca bir tablo stili tanımlanmış olabilir.

Bazen belirli bir sütunun belirli bir veri tablosunun kalan sütunlarından farklı görünmesini istersiniz. özelliğini kullanarak GridColumnStyles özelleştirilmiş bir sütun stilleri kümesi oluşturabilirsiniz.

Sütun stilleri, tıpkı tablo stillerinin veri tablolarında olduğu gibi veri kümesindeki sütunlarla da ilişkilidir. Her tabloda aynı anda yalnızca bir tablo stili tanımlanmış olabileceği gibi, her sütunda da belirli bir tablo stilinde yalnızca bir sütun stili tanımlanabilir. Bu ilişki sütunun MappingName özelliğinde tanımlanır.

Sütun stilleri eklenmeden bir tablo stili oluşturduysanız, çalışma zamanında form ve kılavuz oluşturulduğunda Visual Studio varsayılan sütun stillerini ekler. Ancak, bir tablo stili oluşturduysanız ve bu stile herhangi bir sütun stili eklediyseniz, Visual Studio herhangi bir sütun stili oluşturmaz. Ayrıca, sütun stillerini tanımlamanız ve kılavuzda görünmesini istediğiniz sütunların görünmesi için bunları eşleme adıyla atamanız gerekir.

Veri kılavuzuna hangi sütunların dahil edileceğini bir sütun stili atayarak belirttiğinizden ve sütunlara hiçbir sütun stili atanmadığından, veri kümesine kılavuzda görüntülenmeyen veri sütunları ekleyebilirsiniz. Ancak veri sütunu veri kümesine eklendiğinden, görüntülenmeyen verileri program aracılığıyla düzenleyebilirsiniz.

Dekont

Genel olarak, tablo stilleri koleksiyonuna tablo stilleri eklemeden önce sütun stilleri oluşturun ve bunları sütun stilleri koleksiyonuna ekleyin. Koleksiyona boş bir tablo stili eklediğinizde, sütun stilleri sizin için otomatik olarak oluşturulur. Sonuç olarak, sütun stilleri koleksiyonuna yinelenen MappingName değerler içeren yeni sütun stilleri eklemeyi denerseniz bir özel durum oluşturulur.

Bazen, birçok sütun arasında yalnızca bir sütunu ayarlamak istersiniz; örneğin, veri kümesi 50 sütun içerir ve bunların yalnızca 49'unu istersiniz. Bu durumda, istediğiniz 49 ayrı sütunun her birini program aracılığıyla eklemek yerine 50 sütunun tümünü içeri aktarmak ve birini program aracılığıyla kaldırmak daha kolaydır.

Biçimlendirme

Denetime DataGrid uygulanabilen biçimlendirme kenarlık stillerini, kılavuz çizgisi stillerini, yazı tiplerini, başlık özelliklerini, veri hizalamasını ve satırlar arasında değişen arka plan renklerini içerir. Daha fazla bilgi için bkz . Nasıl yapılır: Windows Forms DataGrid Denetimini Biçimlendirme.

Ekinlikler

, ve ScrollDataGrid gibi MouseDownEnteryaygın denetim olaylarının yanı sıra denetim, kılavuz içinde düzenleme ve gezinti ile ilişkili olayları destekler. CurrentCell özelliği hangi hücrenin seçili olduğunu belirler. Kullanıcı CurrentCellChanged yeni bir hücreye gittiği zaman olay oluşturulur. Kullanıcı üst/alt ilişkiler aracılığıyla yeni bir tabloya gittiği zaman Navigate , olay oluşturulur. Olay BackButtonClick , kullanıcı bir alt tabloyu görüntülerken geri düğmesine tıkladığında ve ShowParentDetailsButtonClick üst satırları göster/gizle simgesi tıklatıldığında olay tetiklendiğinde oluşturulur.

Ayrıca bkz.