DataGridViewCheckBoxColumn.ThreeState プロパティ
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)

Dim instance As DataGridViewCheckBoxColumn Dim value As Boolean value = instance.ThreeState instance.ThreeState = value
/** @property */ public boolean get_ThreeState () /** @property */ public void set_ThreeState (boolean value)
ホストされている DataGridViewCheckBoxCell オブジェクトが 3 つ目の状態 (不確定状態) を表示できる場合は true。それ以外の場合は false。既定値は false です。


中間状態は、チェック ボックスに既定の値を設定しない場合に便利です。
このプロパティを取得または設定すると、CellTemplate プロパティによって返されるセル オブジェクトの ThreeState プロパティを取得または設定できます。このプロパティを設定すると、列に含まれるすべてのセルの ThreeState プロパティも設定され、列の表示が更新されます。各セルの指定した値をオーバーライドするには、列の値を設定してからセルの値を設定します。
DefaultCellStyle プロパティによって返されたオブジェクトの NullValue プロパティ値が false の場合、ThreeState プロパティの値を true に変更すると、NullValue が Indeterminate に自動的に設定されます。NullValue の値が Indeterminate の場合、ThreeState プロパティの値を false に変更すると、NullValue が false に自動的に設定されます。

次のコード例は、DataGridViewCheckBoxColumn を使用して、オフィスの照明の状態を追跡する方法を示しています。FalseValue プロパティでは、"turnedOff" が false に関連付けられます。TrueValue プロパティでは、"turnedOn" が true に関連付けられます。また、IndeterminateValue プロパティでは、"unknown" が不確定状態に関連付けられます。
Imports System.IO Imports System.Collections.Generic Imports System.Windows.Forms Public Class TriValueVirtualCheckBox Inherits System.Windows.Forms.Form Dim WithEvents dataGridView1 As New DataGridView Const initialSize As Integer = 500 Dim store As New Dictionary(Of Integer, LightStatus) Public Sub New() MyBase.New() Text = Me.GetType().Name Dim index As Integer = 0 For index = 0 To initialSize store.Add(index, LightStatus.Unknown) Next Controls.Add(dataGridView1) dataGridView1.VirtualMode = True dataGridView1.AllowUserToDeleteRows = False dataGridView1.Columns.Add(CreateCheckBoxColumn()) dataGridView1.Rows.AddCopies(0, initialSize) End Sub Private Function CreateCheckBoxColumn() As DataGridViewCheckBoxColumn Dim dataGridViewCheckBoxColumn1 _ As New DataGridViewCheckBoxColumn() dataGridViewCheckBoxColumn1.HeaderText = "Lights On" dataGridViewCheckBoxColumn1.TrueValue = LightStatus.TurnedOn dataGridViewCheckBoxColumn1.FalseValue = LightStatus.TurnedOff dataGridViewCheckBoxColumn1.IndeterminateValue = _ LightStatus.Unknown dataGridViewCheckBoxColumn1.ThreeState = True dataGridViewCheckBoxColumn1.ValueType = GetType(LightStatus) Return dataGridViewCheckBoxColumn1 End Function #Region "data store maintance" Private Sub dataGridView1_CellValueNeeded(ByVal sender As Object, _ ByVal e As DataGridViewCellValueEventArgs) _ Handles dataGridView1.CellValueNeeded e.Value = store(e.RowIndex) End Sub Private Sub dataGridView1_CellValuePushed(ByVal sender As Object, _ ByVal e As DataGridViewCellValueEventArgs) _ Handles dataGridView1.CellValuePushed store.Item(e.RowIndex) = CType(e.Value, LightStatus) End Sub #End Region <STAThreadAttribute()> _ Public Shared Sub Main() Application.Run(New TriValueVirtualCheckBox()) End Sub End Class Public Enum LightStatus Unknown TurnedOn TurnedOff End Enum
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 };
#using <System.Windows.Forms.dll> #using <System.dll> #using <System.Drawing.dll> using namespace System; using namespace System::IO; using namespace System::Collections::Generic; using namespace System::Windows::Forms; public enum class LightStatus { Unknown, TurnedOn, TurnedOff }; public ref class TriValueVirtualCheckBox: public Form { private: DataGridView^ dataGridView1; private: const int initialSize; private: Dictionary<int, LightStatus>^ store; public: TriValueVirtualCheckBox() : Form(), initialSize(500) { dataGridView1 = gcnew DataGridView(); store = gcnew Dictionary<int, LightStatus>(); Text = this->GetType()->Name; for(int i = 0; i < initialSize; i++) { store->Add(i, LightStatus::Unknown); } Controls->Add(dataGridView1); dataGridView1->VirtualMode = true; dataGridView1->AllowUserToDeleteRows = false; dataGridView1->CellValueNeeded += gcnew DataGridViewCellValueEventHandler( this, &TriValueVirtualCheckBox::dataGridView1_CellValueNeeded); dataGridView1->CellValuePushed += gcnew DataGridViewCellValueEventHandler( this, &TriValueVirtualCheckBox::dataGridView1_CellValuePushed); dataGridView1->Columns->Add(CreateCheckBoxColumn()); dataGridView1->Rows->AddCopies(0, initialSize); } private: DataGridViewCheckBoxColumn^ CreateCheckBoxColumn() { DataGridViewCheckBoxColumn^ dataGridViewCheckBoxColumn1 = gcnew DataGridViewCheckBoxColumn(); dataGridViewCheckBoxColumn1->HeaderText = "Lights On"; dataGridViewCheckBoxColumn1->TrueValue = LightStatus::TurnedOn; dataGridViewCheckBoxColumn1->FalseValue = LightStatus::TurnedOff; dataGridViewCheckBoxColumn1->IndeterminateValue = LightStatus::Unknown; dataGridViewCheckBoxColumn1->ThreeState = true; dataGridViewCheckBoxColumn1->ValueType = LightStatus::typeid; return dataGridViewCheckBoxColumn1; } #pragma 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; } #pragma endregion }; [STAThread] int main() { Application::Run(gcnew TriValueVirtualCheckBox()); }

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


DataGridViewCheckBoxColumn クラス
DataGridViewCheckBoxColumn メンバ
System.Windows.Forms 名前空間
DataGridView クラス
DataGridViewCheckBoxColumn.CellTemplate プロパティ
DataGridViewCheckBoxCell クラス
DataGridViewCheckBoxCell.ThreeState プロパティ
DataGridViewCheckBoxColumn.FalseValue プロパティ
TrueValue
DataGridViewCheckBoxColumn.IndeterminateValue プロパティ
- DataGridViewCheckBoxColumn.ThreeState プロパティのページへのリンク