DataGridViewCheckBoxColumn.ThreeState Özellik

Tanım

Barındırılan onay kutusu hücrelerinin iki yerine üç onay durumu verip vermeyeceğini belirten bir değer alır veya ayarlar.

C#
public bool ThreeState { get; set; }

Özellik Değeri

Boolean

true barındırılan DataGridViewCheckBoxCell nesneler üçüncü, belirsiz, duruma sahipse; değilse, false. Varsayılan değer: false.

Özel durumlar

özelliğinin CellTemplate değeri şeklindedir null.

Örnekler

Aşağıdaki kod örneği, ofis aydınlatmasının durumunu izlemek için bir DataGridViewCheckBoxColumn kullanır. FalseValue özelliği "turnedOff" öğesini ile falseilişkilendirir, TrueValue özelliği "turnedOn" öğesini ile trueilişkilendirir ve IndeterminateValue özelliği belirsiz olması için "bilinmeyen" öğesini ilişkilendirir.

C#
using System;
using System.IO;
using System.Collections.Generic;
using System.Windows.Forms;

public class TriValueVirtualCheckBox:Form
{
    DataGridView dataGridView1 = new DataGridView();

    const int initialSize = 500;

    Dictionary<int, LightStatus> store 
        = new Dictionary<int, LightStatus>();

    public TriValueVirtualCheckBox() : base()
    {        
        Text = this.GetType().Name;

        int index = 0;
        for(index=0; index<=initialSize; index++)
            store.Add(index, LightStatus.Unknown);

        Controls.Add(dataGridView1);
        dataGridView1.VirtualMode = true;
        dataGridView1.AllowUserToDeleteRows = false;
        dataGridView1.CellValueNeeded += new 
            DataGridViewCellValueEventHandler(dataGridView1_CellValueNeeded);
        dataGridView1.CellValuePushed += new 
            DataGridViewCellValueEventHandler(dataGridView1_CellValuePushed);

        dataGridView1.Columns.Add(CreateCheckBoxColumn());
        dataGridView1.Rows.AddCopies(0, initialSize);
    }

    private DataGridViewCheckBoxColumn CreateCheckBoxColumn()
    {
        DataGridViewCheckBoxColumn dataGridViewCheckBoxColumn1 
            = new DataGridViewCheckBoxColumn();
        dataGridViewCheckBoxColumn1.HeaderText = "Lights On";
        dataGridViewCheckBoxColumn1.TrueValue = LightStatus.TurnedOn;
        dataGridViewCheckBoxColumn1.FalseValue = LightStatus.TurnedOff;
        dataGridViewCheckBoxColumn1.IndeterminateValue 
            = LightStatus.Unknown;
        dataGridViewCheckBoxColumn1.ThreeState = true;
        dataGridViewCheckBoxColumn1.ValueType = typeof(LightStatus);
        return dataGridViewCheckBoxColumn1;
    }

#region "data store maintance"
    private void dataGridView1_CellValueNeeded(object sender, 
        DataGridViewCellValueEventArgs e)
    {
        e.Value = store[e.RowIndex];
    }

    private void dataGridView1_CellValuePushed(object sender, 
        DataGridViewCellValueEventArgs e)
    {
        store[e.RowIndex] = (LightStatus) e.Value;
    }
#endregion

    [STAThreadAttribute()]
    public static void Main()
    {
        Application.Run(new TriValueVirtualCheckBox());
    }
}

public enum LightStatus
{
    Unknown, 
    TurnedOn, 
    TurnedOff
};

Açıklamalar

Belirsiz durum, örneğin onay kutusunda varsayılan bir değer ayarlamak istemediğinizde yararlı olabilir.

Bu özelliği almak veya ayarlamak, özelliği tarafından CellTemplate döndürülen hücre nesnesinin özelliğini alır veya ayarlarThreeState. Bu özelliğin ayarlanması, sütundaki ThreeState her hücrenin özelliğini de ayarlar ve sütun görünümünü yeniler. Tek tek hücreler için belirtilen değeri geçersiz kılmak için, sütun değerini ayarladıktan sonra hücre değerlerini ayarlayın.

özelliği tarafından DefaultCellStyle döndürülen nesnesinin özelliği değerine falseThreeState sahipse, özellik değerini true otomatik olarak olarak olarak ayarlar NullValue Indeterminate.NullValue değeri varsa, özellik değerini false otomatik olarak olarak olarak değiştirirfalseNullValue.ThreeState NullValue Indeterminate

Şunlara uygulanır

Ürün Sürümler
.NET Framework 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
Windows Desktop 3.0, 3.1, 5, 6, 7

Ayrıca bkz.