İngilizce dilinde oku

Aracılığıyla paylaş


DataGridBoolColumn Sınıf

Tanım

Her hücrenin boole değerini temsil eden bir onay kutusu içerdiği bir sütun belirtir.

C#
public class DataGridBoolColumn : System.Windows.Forms.DataGridColumnStyle
Devralma

Örnekler

Aşağıdaki kod örneği önce yeni DataGridBoolColumn bir oluşturur ve öğesinin DataGridTableStyleöğesine GridColumnStylesCollection ekler.

C#
using System;
using System.Data;
using System.Windows.Forms;
using System.Drawing;
using System.ComponentModel;

public class MyForm : Form 
{
    private DataTable myTable;
    private DataGrid myGrid = new DataGrid();
    
    public MyForm() : base() 
    {
        try
        {
            InitializeComponent();

            myTable = new DataTable("NamesTable");
            myTable.Columns.Add(new DataColumn("Name"));
            DataColumn column = new DataColumn
                ("id", typeof(System.Int32));
            myTable.Columns.Add(column);
            myTable.Columns.Add(new 
                DataColumn("calculatedField", typeof(bool)));
            DataSet namesDataSet = new DataSet();
            namesDataSet.Tables.Add(myTable);
            myGrid.SetDataBinding(namesDataSet, "NamesTable");
        
            AddTableStyle();
            AddData();
        }
        catch (System.Exception exc)
        {
            Console.WriteLine(exc.ToString());
        }
    }

    private void grid_Enter(object sender, EventArgs e) 
    {
        myGrid.CurrentCell = new DataGridCell(2,2);
    }

    private void AddTableStyle()
    {
        // Map a new  TableStyle to the DataTable. Then 
        // add DataGridColumnStyle objects to the collection
        // of column styles with appropriate mappings.
        DataGridTableStyle dgt = new DataGridTableStyle();
        dgt.MappingName = "NamesTable";

        DataGridTextBoxColumn dgtbc = new DataGridTextBoxColumn();
        dgtbc.MappingName = "Name";
        dgtbc.HeaderText= "Name";
        dgt.GridColumnStyles.Add(dgtbc);

        dgtbc = new DataGridTextBoxColumn();
        dgtbc.MappingName = "id";
        dgtbc.HeaderText= "id";
        dgt.GridColumnStyles.Add(dgtbc);

        DataGridBoolColumnInherit db = 
            new DataGridBoolColumnInherit();
        db.HeaderText= "less than 1000 = blue";
        db.Width= 150;
        db.MappingName = "calculatedField";
        dgt.GridColumnStyles.Add(db);

        myGrid.TableStyles.Add(dgt);

        // This expression instructs the grid to change
        // the color of the inherited DataGridBoolColumn
        // according to the value of the id field. If it's
        // less than 1000, the row is blue. Otherwise,
        // the color is yellow.
        db.Expression = "id < 1000";
    }

    private void AddData() 
    {
        // Add data with varying numbers for the id field.
        // If the number is over 1000, the cell will paint
        // yellow. Otherwise, it will be blue.
        DataRow dRow = myTable.NewRow();

        dRow["Name"] = "name 1 ";
        dRow["id"] = 999;
        myTable.Rows.Add(dRow);

        dRow = myTable.NewRow();
        dRow["Name"] = "name 2";
        dRow["id"] = 2300;
        myTable.Rows.Add(dRow);

        dRow = myTable.NewRow();
        dRow["Name"] = "name 3";
        dRow["id"] = 120;
        myTable.Rows.Add(dRow);

        dRow = myTable.NewRow();
        dRow["Name"] = "name 4";
        dRow["id"] = 4023;
        myTable.Rows.Add(dRow);

        dRow = myTable.NewRow();
        dRow["Name"] = "name 5";
        dRow["id"] = 2345;
        myTable.Rows.Add(dRow);

        myTable.AcceptChanges();
    }

    private void InitializeComponent() 
    {
        this.Size = new Size(500, 500);
        myGrid.Size = new Size(350, 250);
        myGrid.TabStop = true;
        myGrid.TabIndex = 1;
      
        this.StartPosition = FormStartPosition.CenterScreen;
        this.Controls.Add(myGrid);
      }
    [STAThread]
    public static void Main() 
    {
        Application.Run(new MyForm());
    }
}

public class DataGridBoolColumnInherit : DataGridBoolColumn 
{
    private SolidBrush trueBrush = Brushes.Blue as SolidBrush;
    private SolidBrush falseBrush = Brushes.Yellow as SolidBrush;
    private DataColumn expressionColumn = null;
    private static int count = 0;

    public Color FalseColor 
    {
        get 
        {
            return falseBrush.Color;
        }
        set 
        {
            falseBrush = new SolidBrush(value);
            Invalidate();
        }
    }

    public Color TrueColor 
    {
        get 
        {
            return trueBrush.Color;
        }
        set 
        {
            trueBrush = new SolidBrush(value);
            Invalidate();
        }
    }

    public DataGridBoolColumnInherit() : base () 
    {
        count ++;
    }

    // This will work only with a DataSet or DataTable.
    // The code is not compatible with IBindingList implementations.
    public string Expression 
    {
        get 
        {
            return this.expressionColumn == null ? String.Empty : 
                this.expressionColumn.Expression;
        }
        set 
        {
            if (expressionColumn == null)
                AddExpressionColumn(value);
            else 
                expressionColumn.Expression = value;
            if (expressionColumn != null && 
                expressionColumn.Expression.Equals(value))
                return;
            Invalidate();
        }
    }

    private void AddExpressionColumn(string value) 
    {
        // Get the grid's data source. First check for a null 
        // table or data grid.
        if (this.DataGridTableStyle == null || 
            this.DataGridTableStyle.DataGrid == null)
            return;

        DataGrid myGrid = this.DataGridTableStyle.DataGrid;
        DataView myDataView = ((CurrencyManager) 
            myGrid.BindingContext[myGrid.DataSource, 
            myGrid.DataMember]).List 
            as DataView;

        // This works only with System.Data.DataTable.
        if (myDataView == null)
            return;

        // If the user already added a column with the name 
        // then exit. Otherwise, add the column and set the 
        // expression to the value passed to this function.
        DataColumn col = myDataView.Table.Columns["__Computed__Column__"];
        if (col != null)
            return;
        col = new DataColumn("__Computed__Column__" + count.ToString());

        myDataView.Table.Columns.Add(col);
        col.Expression = value;
        expressionColumn = col;
    }

    // override the OnPaint method to paint the cell based on the expression.
    protected override void Paint(Graphics g, Rectangle bounds,
        CurrencyManager source, int rowNum,
        Brush backBrush, Brush foreBrush,
        bool alignToRight) 
    {
        bool trueExpression = false;
        bool hasExpression = false;
        DataRowView drv = source.List[rowNum] as DataRowView;

        hasExpression = this.expressionColumn != null && 
            this.expressionColumn.Expression != null && 
            !this.expressionColumn.Expression.Equals(String.Empty);

        Console.WriteLine(string.Format("hasExpressionValue {0}",hasExpression));
        // Get the value from the expression column.
        // For simplicity, we assume a True/False value for the 
        // expression column.
        if (hasExpression) 
        {
            object expr = drv.Row[expressionColumn.ColumnName];
            trueExpression = expr.Equals("True");
        }

        // Let the DataGridBoolColumn do the painting.
        if (!hasExpression)
            base.Paint(g, bounds, source, rowNum, 
                backBrush, foreBrush, alignToRight);

        // Paint using the expression color for true or false, as calculated.
        if (trueExpression)
            base.Paint(g, bounds, source, rowNum, 
                trueBrush, foreBrush, alignToRight);
        else
            base.Paint(g, bounds, source, rowNum, 
                falseBrush, foreBrush, alignToRight);
    }
}

Açıklamalar

DataGridBoolColumn sınıfından abstractDataGridColumnStyletüretilir. Çalışma zamanında, DataGridBoolColumn varsayılan olarak üç durumu olan her hücrede onay kutuları içerir: işaretli (true), işaretlenmemiş (false ) ve Value. İki durumlu onay kutularını kullanmak için özelliğini olarak falseayarlayınAllowNull.

sınıfına eklenen özellikler arasında FalseValue, NullValueve TrueValuebulunur. Bu özellikler, sütunun durumlarının her birinin temelini oluşturan değeri belirtir.

Oluşturucular

DataGridBoolColumn()

DataGridBoolColumn sınıfının yeni bir örneğini başlatır.

DataGridBoolColumn(PropertyDescriptor)

belirtilen PropertyDescriptorile sınıfının yeni bir örneğini DataGridBoolColumn başlatır.

DataGridBoolColumn(PropertyDescriptor, Boolean)

belirtilen PropertyDescriptorile sınıfının yeni bir örneğini DataGridBoolColumn başlatır ve sütun stilinin varsayılan sütun olup olmadığını belirtir.

Özellikler

Alignment

Sütundaki metnin hizalamasını alır veya ayarlar.

(Devralındığı yer: DataGridColumnStyle)
AllowNull

Null değerlere izin verilip verilmeyeceğini belirten bir değer alır veya ayarlar.

CanRaiseEvents

Bileşenin olay oluşturup oluşturamayacağını belirten bir değer alır.

(Devralındığı yer: Component)
Container

öğesini IContainer içeren öğesini Componentalır.

(Devralındığı yer: Component)
DataGridTableStyle

Sütun için öğesini DataGridTableStyle alır.

(Devralındığı yer: DataGridColumnStyle)
DesignMode

öğesinin şu anda tasarım modunda olup olmadığını Component gösteren bir değer alır.

(Devralındığı yer: Component)
Events

Bu Componentöğesine eklenen olay işleyicilerinin listesini alır.

(Devralındığı yer: Component)
FalseValue

Sütun falsedeğerini olarak ayarlarken kullanılan gerçek değeri alır veya ayarlar.

FontHeight

Sütunun yazı tipinin yüksekliğini alır.

(Devralındığı yer: DataGridColumnStyle)
HeaderAccessibleObject

Sütun için öğesini AccessibleObject alır.

(Devralındığı yer: DataGridColumnStyle)
HeaderText

Sütun başlığının metnini alır veya ayarlar.

(Devralındığı yer: DataGridColumnStyle)
MappingName

Sütun stilini eşlemek için veri üyesinin adını alır veya ayarlar.

(Devralındığı yer: DataGridColumnStyle)
NullText

sütunu içerdiğinde nullgörüntülenen metni alır veya ayarlar.

(Devralındığı yer: DataGridColumnStyle)
NullValue

Sütun Valuedeğerini olarak ayarlarken kullanılan gerçek değeri alır veya ayarlar.

PropertyDescriptor

tarafından DataGridColumnStylegörüntülenen verilerin özniteliklerini belirleyen öğesini alır veya ayarlarPropertyDescriptor.

(Devralındığı yer: DataGridColumnStyle)
ReadOnly

Sütundaki verilerin düzenlenip düzenlenemeyeceğini belirten bir değer alır veya ayarlar.

(Devralındığı yer: DataGridColumnStyle)
Site

öğesini alır veya ayarlar ISiteComponent.

(Devralındığı yer: Component)
TrueValue

Sütun truedeğerini olarak ayarlarken kullanılan gerçek değeri alır veya ayarlar.

Width

Sütunun genişliğini alır veya ayarlar.

(Devralındığı yer: DataGridColumnStyle)

Yöntemler

Abort(Int32)

Düzenleme yordamını kesintiye uğratma isteği başlatır.

BeginUpdate()

Yöntemi çağrılana kadar EndUpdate() sütunun tablosunu askıya alır.

(Devralındığı yer: DataGridColumnStyle)
CheckValidDataSource(CurrencyManager)

geçerli bir veri kaynağı yoksa DataGrid veya bu sütun veri kaynağındaki geçerli bir özelliğe eşlenmemişse bir özel durum oluşturur.

(Devralındığı yer: DataGridColumnStyle)
ColumnStartedEditing(Control)

DataGrid Kullanıcının sütunu düzenlemeye başladığını bildirir.

(Devralındığı yer: DataGridColumnStyle)
Commit(CurrencyManager, Int32)

Düzenleme yordamını tamamlamak için bir istek başlatır.

ConcedeFocus()

Bir sütunun odağı barındırdığı denetime vermesi gerektiğini bildirir.

CreateHeaderAccessibleObject()

Sütun için öğesini AccessibleObject alır.

(Devralındığı yer: DataGridColumnStyle)
CreateObjRef(Type)

Uzak bir nesneyle iletişim kurmak için kullanılan bir ara sunucu oluşturmak için gereken tüm ilgili bilgileri içeren bir nesne oluşturur.

(Devralındığı yer: MarshalByRefObject)
Dispose()

Component tarafından kullanılan tüm kaynakları serbest bırakır.

(Devralındığı yer: Component)
Dispose(Boolean)

Component tarafından kullanılan yönetilmeyen kaynakları serbest bırakır ve yönetilen kaynakları isteğe bağlı olarak serbest bırakır.

(Devralındığı yer: Component)
Edit(CurrencyManager, Int32, Rectangle, Boolean)

Hücreyi düzenlemeye hazırlar.

(Devralındığı yer: DataGridColumnStyle)
Edit(CurrencyManager, Int32, Rectangle, Boolean, String)

Belirtilen CurrencyManager, satır numarası ve Rectangle parametreleri kullanarak hücreyi düzenlemeye hazırlar.

(Devralındığı yer: DataGridColumnStyle)
Edit(CurrencyManager, Int32, Rectangle, Boolean, String, Boolean)

Hücreyi bir değeri düzenlemeye hazırlar.

EndUpdate()

yöntemini çağırarak askıya alınan sütunların tablosunu sürdürür BeginUpdate() .

(Devralındığı yer: DataGridColumnStyle)
EnterNullValue()

Sütuna bir Value girer.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetColumnValueAtRow(CurrencyManager, Int32)

Belirtilen satırdaki değeri alır.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetLifetimeService()
Geçersiz.

Bu örnek için yaşam süresi ilkesini denetleen geçerli yaşam süresi hizmet nesnesini alır.

(Devralındığı yer: MarshalByRefObject)
GetMinimumHeight()

Sütundaki bir hücrenin yüksekliğini alır.

GetPreferredHeight(Graphics, Object)

Sütunları yeniden boyutlandırırken kullanılan yüksekliği alır.

GetPreferredSize(Graphics, Object)

İçerecek belirli bir değer verilen hücrenin en uygun genişliğini ve yüksekliğini alır.

GetService(Type)

veya tarafından ComponentContainersağlanan bir hizmeti temsil eden bir nesnesi döndürür.

(Devralındığı yer: Component)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
InitializeLifetimeService()
Geçersiz.

Bu örneğin yaşam süresi ilkesini denetlemek için bir yaşam süresi hizmet nesnesi alır.

(Devralındığı yer: MarshalByRefObject)
Invalidate()

Sütunu yeniden çizer ve denetime bir boya iletisi gönderilmesine neden olur.

(Devralındığı yer: DataGridColumnStyle)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
MemberwiseClone(Boolean)

Geçerli MarshalByRefObject nesnenin sığ bir kopyasını oluşturur.

(Devralındığı yer: MarshalByRefObject)
Paint(Graphics, Rectangle, CurrencyManager, Int32)

DataGridBoolColumn öğesini verilen Graphicsve Rectangle satır numarasıyla çizer.

Paint(Graphics, Rectangle, CurrencyManager, Int32, Boolean)

DataGridBoolColumn öğesini verilen Graphics, , Rectanglesatır numarası ve hizalama ayarlarıyla çizer.

Paint(Graphics, Rectangle, CurrencyManager, Int32, Brush, Brush, Boolean)

DataGridBoolColumn verilen Graphics, , Rectanglesatır numarası, Brushve Colorile çizer.

ReleaseHostedControl()

Barındırdığı denetim gerekli olmadığında sütunun kaynakları boşaltmasına izin verir.

(Devralındığı yer: DataGridColumnStyle)
ResetHeaderText()

öğesini HeaderText varsayılan değerine nullsıfırlar.

(Devralındığı yer: DataGridColumnStyle)
SetColumnValueAtRow(CurrencyManager, Int32, Object)

Belirtilen satırın değerini ayarlar.

SetDataGrid(DataGrid)

Bu sütunun DataGrid ait olduğu denetimi ayarlar.

(Devralındığı yer: DataGridColumnStyle)
SetDataGridInColumn(DataGrid)

Sütun için öğesini DataGrid ayarlar.

(Devralındığı yer: DataGridColumnStyle)
ToString()

Varsa, adını Componentiçeren bir String döndürür. Bu yöntem geçersiz kılınmamalıdır.

(Devralındığı yer: Component)
UpdateUI(CurrencyManager, Int32, String)

Belirtilen satırın değerini verilen metinle Güncelleştirmeler.

(Devralındığı yer: DataGridColumnStyle)

Ekinlikler

AlignmentChanged

Özellik değeri değiştiğinde Alignment gerçekleşir.

(Devralındığı yer: DataGridColumnStyle)
AllowNullChanged

Özelliği değiştirildiğinde AllowNull gerçekleşir.

Disposed

Bileşen yöntemine Dispose() yapılan bir çağrı tarafından atıldığında gerçekleşir.

(Devralındığı yer: Component)
FalseValueChanged

Özelliği değiştirildiğinde FalseValue gerçekleşir.

FontChanged

Sütunun yazı tipi değiştiğinde gerçekleşir.

(Devralındığı yer: DataGridColumnStyle)
HeaderTextChanged

Özellik değeri değiştiğinde HeaderText gerçekleşir.

(Devralındığı yer: DataGridColumnStyle)
MappingNameChanged

Değer değiştiğinde MappingName gerçekleşir.

(Devralındığı yer: DataGridColumnStyle)
NullTextChanged

Değer değiştiğinde NullText gerçekleşir.

(Devralındığı yer: DataGridColumnStyle)
PropertyDescriptorChanged

Özellik değeri değiştiğinde PropertyDescriptor gerçekleşir.

(Devralındığı yer: DataGridColumnStyle)
ReadOnlyChanged

Özellik değeri değiştiğinde ReadOnly gerçekleşir.

(Devralındığı yer: DataGridColumnStyle)
TrueValueChanged

Özellik değeri değiştirildiğinde TrueValue gerçekleşir.

WidthChanged

Özellik değeri değiştiğinde Width gerçekleşir.

(Devralındığı yer: DataGridColumnStyle)

Belirtik Arabirim Kullanımları

IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing(Control)

DataGrid Kullanıcının sütunu düzenlemeye başladığını denetime bildirir.

(Devralındığı yer: DataGridColumnStyle)

Şunlara uygulanır

Ürün Sürümler
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0

Ayrıca bkz.