Aracılığıyla paylaş


DataGridColumnStyle Sınıf

Tanım

Dikkat

DataGrid is provided for binary compatibility with .NET Framework and is not intended to be used directly from your code. Use DataGridView instead.

Denetim sütununun görünümünü, metin biçimlendirmesini DataGrid ve davranışını belirtir. Bu sınıf soyut.

public ref class DataGridColumnStyle abstract : System::ComponentModel::Component, System::Windows::Forms::IDataGridColumnStyleEditingNotificationService
public abstract class DataGridColumnStyle : System.ComponentModel.Component, System.Windows.Forms.IDataGridColumnStyleEditingNotificationService
[System.ComponentModel.Browsable(false)]
[System.Obsolete("`DataGrid` is provided for binary compatibility with .NET Framework and is not intended to be used directly from your code. Use `DataGridView` instead.", false, DiagnosticId="WFDEV006", UrlFormat="https://aka.ms/winforms-warnings/{0}")]
public abstract class DataGridColumnStyle : System.ComponentModel.Component, System.Windows.Forms.IDataGridColumnStyleEditingNotificationService
type DataGridColumnStyle = class
    inherit Component
    interface IDataGridColumnStyleEditingNotificationService
[<System.ComponentModel.Browsable(false)>]
[<System.Obsolete("`DataGrid` is provided for binary compatibility with .NET Framework and is not intended to be used directly from your code. Use `DataGridView` instead.", false, DiagnosticId="WFDEV006", UrlFormat="https://aka.ms/winforms-warnings/{0}")>]
type DataGridColumnStyle = class
    inherit Component
    interface IDataGridColumnStyleEditingNotificationService
Public MustInherit Class DataGridColumnStyle
Inherits Component
Implements IDataGridColumnStyleEditingNotificationService
Devralma
DataGridColumnStyle
Türetilmiş
Öznitelikler
Uygulamalar

Örnekler

Aşağıdaki kod örneği, denetimi barındıran bir DataGridColumnStyleDateTimePicker oluşturur.

#using <System.dll>
#using <System.Data.dll>
#using <System.Drawing.dll>
#using <System.Windows.Forms.dll>
#using <System.Xml.dll>

using namespace System;
using namespace System::Data;
using namespace System::Windows::Forms;
using namespace System::Drawing;
using namespace System::Security::Permissions;

// This example shows how to create your own column style that
// hosts a control, in this case, a DateTimePicker.

public ref class CustomDateTimePicker : public DateTimePicker
{
protected:
    [SecurityPermission(SecurityAction::Demand, Flags=SecurityPermissionFlag::UnmanagedCode)]
    virtual bool ProcessKeyMessage( Message% m ) override
    {
        // Keep all the keys for the DateTimePicker.
        return ProcessKeyEventArgs( m );
    }
};

public ref class DataGridTimePickerColumn : public DataGridColumnStyle
{
private:
   CustomDateTimePicker^ customDateTimePicker1;

   // The isEditing field tracks whether or not the user is
   // editing data with the hosted control.
   bool isEditing;

public:
   DataGridTimePickerColumn()
   {
      customDateTimePicker1 = gcnew CustomDateTimePicker;
      customDateTimePicker1->Visible = false;
   }

protected:
   virtual void Abort( int /*rowNum*/ ) override
   {
      isEditing = false;
      customDateTimePicker1->ValueChanged -=
         gcnew EventHandler( this, &DataGridTimePickerColumn::TimePickerValueChanged );
      Invalidate();
   }

   virtual bool Commit( CurrencyManager^ dataSource, int rowNum ) override
   {
      customDateTimePicker1->Bounds = Rectangle::Empty;

      customDateTimePicker1->ValueChanged -=
         gcnew EventHandler( this, &DataGridTimePickerColumn::TimePickerValueChanged );
      
      if (  !isEditing )
         return true;

      isEditing = false;

      try
      {
         DateTime value = customDateTimePicker1->Value;
         SetColumnValueAtRow( dataSource, rowNum, value );
      }
      catch ( Exception^ ) 
      {
         Abort( rowNum );
         return false;
      }

      Invalidate();
      return true;
   }

   virtual void Edit(
      CurrencyManager^ source,
      int rowNum,
      Rectangle bounds,
      bool /*readOnly*/,
      String^ /*displayText*/,
      bool cellIsVisible ) override
   {
      DateTime value =  (DateTime)
         GetColumnValueAtRow( source, rowNum );
      if ( cellIsVisible )
      {
         customDateTimePicker1->Bounds = Rectangle(
            bounds.X + 2, bounds.Y + 2,
            bounds.Width - 4, bounds.Height - 4 );
         customDateTimePicker1->Value = value;
         customDateTimePicker1->Visible = true;
         customDateTimePicker1->ValueChanged +=
            gcnew EventHandler( this, &DataGridTimePickerColumn::TimePickerValueChanged );
      }
      else
      {
         customDateTimePicker1->Value = value;
         customDateTimePicker1->Visible = false;
      }

      if ( customDateTimePicker1->Visible )
         DataGridTableStyle->DataGrid->Invalidate( bounds );

      customDateTimePicker1->Focus();
   }

   virtual System::Drawing::Size GetPreferredSize(
      Graphics^ /*g*/,
      Object^ /*value*/ ) override
   {
      return Size( 100, customDateTimePicker1->PreferredHeight + 4);
   }

   virtual int GetMinimumHeight() override
   {
      return customDateTimePicker1->PreferredHeight + 4;
   }

   virtual int GetPreferredHeight( Graphics^ /*g*/,
      Object^ /*value*/ ) override
   {
      return customDateTimePicker1->PreferredHeight + 4;
   }

   virtual void Paint( Graphics^ g,
      Rectangle bounds,
      CurrencyManager^ source,
      int rowNum ) override
   {
      Paint( g, bounds, source, rowNum, false );
   }

   virtual void Paint(
      Graphics^ g,
      Rectangle bounds,
      CurrencyManager^ source,
      int rowNum,
      bool alignToRight ) override
   {
      Paint(
         g, bounds,
         source,
         rowNum,
         Brushes::Red,
         Brushes::Blue,
         alignToRight );
   }

   virtual void Paint(
      Graphics^ g,
      Rectangle bounds,
      CurrencyManager^ source,
      int rowNum,
      Brush^ backBrush,
      Brush^ foreBrush,
      bool /*alignToRight*/ ) override
   {
      DateTime date =  (DateTime)
         GetColumnValueAtRow( source, rowNum );
      Rectangle rect = bounds;
      g->FillRectangle( backBrush, rect );
      rect.Offset( 0, 2 );
      rect.Height -= 2;
      g->DrawString( date.ToString( "d" ),
         this->DataGridTableStyle->DataGrid->Font,
         foreBrush, rect );
   }

   virtual void SetDataGridInColumn( DataGrid^ value ) override
   {
      DataGridColumnStyle::SetDataGridInColumn( value );
      if ( customDateTimePicker1->Parent != nullptr )
      {
         customDateTimePicker1->Parent->Controls->Remove
            ( customDateTimePicker1 );
      }
      if ( value != nullptr )
      {
         value->Controls->Add( customDateTimePicker1 );
      }
   }

private:
   void TimePickerValueChanged( Object^ /*sender*/, EventArgs^ /*e*/ )
   {
      // Remove the handler to prevent it from being called twice in a row.
      customDateTimePicker1->ValueChanged -=
         gcnew EventHandler( this, &DataGridTimePickerColumn::TimePickerValueChanged );
      this->isEditing = true;
      DataGridColumnStyle::ColumnStartedEditing( customDateTimePicker1 );
   }
};

public ref class MyForm: public Form
{
private:
   DataTable^ namesDataTable;
   DataGrid^ grid;
public:
   MyForm()
   {
      grid = gcnew DataGrid;

      InitForm();

      namesDataTable = gcnew DataTable( "NamesTable" );
      namesDataTable->Columns->Add( gcnew DataColumn( "Name" ) );
      DataColumn^ dateColumn = gcnew DataColumn
         ( "Date",DateTime::typeid );
      dateColumn->DefaultValue = DateTime::Today;
      namesDataTable->Columns->Add( dateColumn );
      DataSet^ namesDataSet = gcnew DataSet;
      namesDataSet->Tables->Add( namesDataTable );
      grid->DataSource = namesDataSet;
      grid->DataMember = "NamesTable";
      AddGridStyle();
      AddData();
   }

private:
   void AddGridStyle()
   {
      DataGridTableStyle^ myGridStyle = gcnew DataGridTableStyle;
      myGridStyle->MappingName = "NamesTable";
      DataGridTextBoxColumn^ nameColumnStyle =
         gcnew DataGridTextBoxColumn;
      nameColumnStyle->MappingName = "Name";
      nameColumnStyle->HeaderText = "Name";
      myGridStyle->GridColumnStyles->Add( nameColumnStyle );

      DataGridTimePickerColumn^ timePickerColumnStyle =
         gcnew DataGridTimePickerColumn;
      timePickerColumnStyle->MappingName = "Date";
      timePickerColumnStyle->HeaderText = "Date";
      timePickerColumnStyle->Width = 100;
      myGridStyle->GridColumnStyles->Add( timePickerColumnStyle );

      grid->TableStyles->Add( myGridStyle );
   }

   void AddData()
   {
      DataRow^ dRow = namesDataTable->NewRow();
      dRow->default[ "Name" ] = "Name 1";
      dRow->default[ "Date" ] = DateTime(2001,12,01);
      namesDataTable->Rows->Add( dRow );

      dRow = namesDataTable->NewRow();
      dRow->default[ "Name" ] = "Name 2";
      dRow->default[ "Date" ] = DateTime(2001,12,04);
      namesDataTable->Rows->Add( dRow );

      dRow = namesDataTable->NewRow();
      dRow->default[ "Name" ] = "Name 3";
      dRow->default[ "Date" ] = DateTime(2001,12,29);
      namesDataTable->Rows->Add( dRow );

      dRow = namesDataTable->NewRow();
      dRow->default[ "Name" ] = "Name 4";
      dRow->default[ "Date" ] = DateTime(2001,12,13);
      namesDataTable->Rows->Add( dRow );

      dRow = namesDataTable->NewRow();
      dRow->default[ "Name" ] = "Name 5";
      dRow->default[ "Date" ] = DateTime(2001,12,21);
      namesDataTable->Rows->Add( dRow );

      namesDataTable->AcceptChanges();
   }

   void InitForm()
   {
      this->Size = System::Drawing::Size( 500, 500 );
      grid->Size = System::Drawing::Size( 350, 250 );
      grid->TabStop = true;
      grid->TabIndex = 1;
      this->StartPosition = FormStartPosition::CenterScreen;
      this->Controls->Add( grid );
   }
};

[STAThread]
int main()
{
   Application::Run( gcnew MyForm );
}
using System;
using System.Data;
using System.Windows.Forms;
using System.Drawing;

// This example shows how to create your own column style that
// hosts a control, in this case, a DateTimePicker.
public class DataGridTimePickerColumn : DataGridColumnStyle
{
    private CustomDateTimePicker customDateTimePicker1 = 
        new CustomDateTimePicker();

    // The isEditing field tracks whether or not the user is
    // editing data with the hosted control.
    private bool isEditing;

    public DataGridTimePickerColumn() : base()
    {
        customDateTimePicker1.Visible = false;
    }

    protected override void Abort(int rowNum)
    {
        isEditing = false;
        customDateTimePicker1.ValueChanged -=
            new EventHandler(TimePickerValueChanged);
        Invalidate();
    }

    protected override bool Commit
        (CurrencyManager dataSource, int rowNum)
    {
        customDateTimePicker1.Bounds = Rectangle.Empty;

        customDateTimePicker1.ValueChanged -=
            new EventHandler(TimePickerValueChanged);

        if (!isEditing)
            return true;

        isEditing = false;

        try
        {
            DateTime value = customDateTimePicker1.Value;
            SetColumnValueAtRow(dataSource, rowNum, value);
        }
        catch (Exception)
        {
            Abort(rowNum);
            return false;
        }

        Invalidate();
        return true;
    }

    protected override void Edit(
        CurrencyManager source,
        int rowNum,
        Rectangle bounds,
        bool readOnly,
        string displayText,
        bool cellIsVisible)
    {
        DateTime value = (DateTime)
            GetColumnValueAtRow(source, rowNum);
        if (cellIsVisible)
        {
            customDateTimePicker1.Bounds = new Rectangle
                (bounds.X + 2, bounds.Y + 2,
                bounds.Width - 4, bounds.Height - 4);
            customDateTimePicker1.Value = value;
            customDateTimePicker1.Visible = true;
            customDateTimePicker1.ValueChanged +=
                new EventHandler(TimePickerValueChanged);
        }
        else
        {
            customDateTimePicker1.Value = value;
            customDateTimePicker1.Visible = false;
        }

        if (customDateTimePicker1.Visible)
            DataGridTableStyle.DataGrid.Invalidate(bounds);

        customDateTimePicker1.Focus();
    }

    protected override Size GetPreferredSize(
        Graphics g,
        object value)
    {
        return new Size(100, customDateTimePicker1.PreferredHeight + 4);
    }

    protected override int GetMinimumHeight()
    {
        return customDateTimePicker1.PreferredHeight + 4;
    }

    protected override int GetPreferredHeight(Graphics g,
        object value)
    {
        return customDateTimePicker1.PreferredHeight + 4;
    }

    protected override void Paint(Graphics g,
        Rectangle bounds,
        CurrencyManager source,
        int rowNum)
    {
        Paint(g, bounds, source, rowNum, false);
    }

    protected override void Paint(
        Graphics g,
        Rectangle bounds,
        CurrencyManager source,
        int rowNum,
        bool alignToRight)
    {
        Paint(
            g, bounds,
            source,
            rowNum,
            Brushes.Red,
            Brushes.Blue,
            alignToRight);
    }

    protected override void Paint(
        Graphics g,
        Rectangle bounds,
        CurrencyManager source,
        int rowNum,
        Brush backBrush,
        Brush foreBrush,
        bool alignToRight)
    {
        DateTime date = (DateTime)
            GetColumnValueAtRow(source, rowNum);
        Rectangle rect = bounds;
        g.FillRectangle(backBrush, rect);
        rect.Offset(0, 2);
        rect.Height -= 2;
        g.DrawString(date.ToString("d"),
            this.DataGridTableStyle.DataGrid.Font,
            foreBrush, rect);
    }

    protected override void SetDataGridInColumn(DataGrid value)
    {
        base.SetDataGridInColumn(value);
        if (customDateTimePicker1.Parent != null)
        {
            customDateTimePicker1.Parent.Controls.Remove
                (customDateTimePicker1);
        }
        if (value != null)
        {
            value.Controls.Add(customDateTimePicker1);
        }
    }

    private void TimePickerValueChanged(object sender, EventArgs e)
    {
        // Remove the handler to prevent it from being called twice in a row.
        customDateTimePicker1.ValueChanged -=
            new EventHandler(TimePickerValueChanged);
        this.isEditing = true;
        base.ColumnStartedEditing(customDateTimePicker1);
    }
}

public class CustomDateTimePicker : DateTimePicker
{
    protected override bool ProcessKeyMessage(ref Message m)
    {
        // Keep all the keys for the DateTimePicker.
        return ProcessKeyEventArgs(ref m);
    }
}

public class MyForm : Form
{
    private DataTable namesDataTable;
    private DataGrid grid = new DataGrid();
    public MyForm() : base()
    {
        InitForm();

        namesDataTable = new DataTable("NamesTable");
        namesDataTable.Columns.Add(new DataColumn("Name"));
        DataColumn dateColumn = new DataColumn
            ("Date", typeof(DateTime));
        dateColumn.DefaultValue = DateTime.Today;
        namesDataTable.Columns.Add(dateColumn);
        DataSet namesDataSet = new DataSet();
        namesDataSet.Tables.Add(namesDataTable);
        grid.DataSource = namesDataSet;
        grid.DataMember = "NamesTable";
        AddGridStyle();
        AddData();
    }

    private void AddGridStyle()
    {
        DataGridTableStyle myGridStyle = new DataGridTableStyle();
        myGridStyle.MappingName = "NamesTable";

        DataGridTextBoxColumn nameColumnStyle =
            new DataGridTextBoxColumn();
        nameColumnStyle.MappingName = "Name";
        nameColumnStyle.HeaderText = "Name";
        myGridStyle.GridColumnStyles.Add(nameColumnStyle);

        DataGridTimePickerColumn timePickerColumnStyle =
            new DataGridTimePickerColumn();
        timePickerColumnStyle.MappingName = "Date";
        timePickerColumnStyle.HeaderText = "Date";
        timePickerColumnStyle.Width = 100;
        myGridStyle.GridColumnStyles.Add(timePickerColumnStyle);

        grid.TableStyles.Add(myGridStyle);
    }

    private void AddData()
    {

        DataRow dRow = namesDataTable.NewRow();
        dRow["Name"] = "Name 1";
        dRow["Date"] = new DateTime(2001, 12, 01);
        namesDataTable.Rows.Add(dRow);

        dRow = namesDataTable.NewRow();
        dRow["Name"] = "Name 2";
        dRow["Date"] = new DateTime(2001, 12, 04);
        namesDataTable.Rows.Add(dRow);

        dRow = namesDataTable.NewRow();
        dRow["Name"] = "Name 3";
        dRow["Date"] = new DateTime(2001, 12, 29);
        namesDataTable.Rows.Add(dRow);

        dRow = namesDataTable.NewRow();
        dRow["Name"] = "Name 4";
        dRow["Date"] = new DateTime(2001, 12, 13);
        namesDataTable.Rows.Add(dRow);

        dRow = namesDataTable.NewRow();
        dRow["Name"] = "Name 5";
        dRow["Date"] = new DateTime(2001, 12, 21);
        namesDataTable.Rows.Add(dRow);

        namesDataTable.AcceptChanges();
    }

    private void InitForm()
    {
        this.Size = new Size(500, 500);
        grid.Size = new Size(350, 250);
        grid.TabStop = true;
        grid.TabIndex = 1;
        this.StartPosition = FormStartPosition.CenterScreen;
        this.Controls.Add(grid);
    }
 
    [STAThread]
    public static void Main()
    {
        Application.Run(new MyForm());
    }
}
Imports System.Data
Imports System.Windows.Forms
Imports System.Drawing
Imports System.ComponentModel
Imports System.Security.Permissions

' This example shows how to create your own column style that
' hosts a control, in this case, a DateTimePicker.
Public Class DataGridTimePickerColumn
    Inherits DataGridColumnStyle

    Private customDateTimePicker1 As New CustomDateTimePicker()

    ' The isEditing field tracks whether or not the user is
    ' editing data with the hosted control.
    Private isEditing As Boolean

    Public Sub New()
        customDateTimePicker1.Visible = False
    End Sub

    Protected Overrides Sub Abort(ByVal rowNum As Integer)
        isEditing = False
        RemoveHandler customDateTimePicker1.ValueChanged, _
            AddressOf TimePickerValueChanged
        Invalidate()
    End Sub

    Protected Overrides Function Commit _
        (ByVal dataSource As CurrencyManager, ByVal rowNum As Integer) _
        As Boolean

        customDateTimePicker1.Bounds = Rectangle.Empty

        RemoveHandler customDateTimePicker1.ValueChanged, _
            AddressOf TimePickerValueChanged

        If Not isEditing Then
            Return True
        End If
        isEditing = False

        Try
            Dim value As DateTime = customDateTimePicker1.Value
            SetColumnValueAtRow(dataSource, rowNum, value)
        Catch
        End Try

        Invalidate()
        Return True
    End Function

    Protected Overloads Overrides Sub Edit( _
        ByVal [source] As CurrencyManager, _
        ByVal rowNum As Integer, _
        ByVal bounds As Rectangle, _
        ByVal [readOnly] As Boolean, _
        ByVal displayText As String, _
        ByVal cellIsVisible As Boolean)

        Dim value As DateTime = _
        CType(GetColumnValueAtRow([source], rowNum), DateTime)
        If cellIsVisible Then
            customDateTimePicker1.Bounds = New Rectangle _
            (bounds.X + 2, bounds.Y + 2, bounds.Width - 4, _
            bounds.Height - 4)

            customDateTimePicker1.Value = value
            customDateTimePicker1.Visible = True
            AddHandler customDateTimePicker1.ValueChanged, _
            AddressOf TimePickerValueChanged
        Else
            customDateTimePicker1.Value = value
            customDateTimePicker1.Visible = False
        End If

        If customDateTimePicker1.Visible Then
            DataGridTableStyle.DataGrid.Invalidate(bounds)
        End If

        customDateTimePicker1.Focus()

    End Sub

    Protected Overrides Function GetPreferredSize( _
        ByVal g As Graphics, _
        ByVal value As Object) As Size

        Return New Size(100, customDateTimePicker1.PreferredHeight + 4)

    End Function

    Protected Overrides Function GetMinimumHeight() As Integer
        Return customDateTimePicker1.PreferredHeight + 4
    End Function

    Protected Overrides Function GetPreferredHeight( _
        ByVal g As Graphics, ByVal value As Object) As Integer

        Return customDateTimePicker1.PreferredHeight + 4

    End Function

    Protected Overloads Overrides Sub Paint( _
        ByVal g As Graphics, ByVal bounds As Rectangle, _
        ByVal [source] As CurrencyManager, ByVal rowNum As Integer)

        Paint(g, bounds, [source], rowNum, False)

    End Sub

    Protected Overloads Overrides Sub Paint(ByVal g As Graphics, _
        ByVal bounds As Rectangle, ByVal [source] As CurrencyManager, _
        ByVal rowNum As Integer, ByVal alignToRight As Boolean)

        Paint(g, bounds, [source], rowNum, Brushes.Red, _
            Brushes.Blue, alignToRight)

    End Sub

    Protected Overloads Overrides Sub Paint(ByVal g As Graphics, _
        ByVal bounds As Rectangle, ByVal [source] As CurrencyManager, _
        ByVal rowNum As Integer, ByVal backBrush As Brush, _
        ByVal foreBrush As Brush, ByVal alignToRight As Boolean)

        Dim [date] As DateTime = _
        CType(GetColumnValueAtRow([source], rowNum), DateTime)
        Dim rect As Rectangle = bounds
        g.FillRectangle(backBrush, rect)
        rect.Offset(0, 2)
        rect.Height -= 2
        g.DrawString([date].ToString("d"), _
            Me.DataGridTableStyle.DataGrid.Font, foreBrush, _
            RectangleF.FromLTRB(rect.X, rect.Y, rect.Right, rect.Bottom))

    End Sub

    Protected Overrides Sub SetDataGridInColumn(ByVal value As DataGrid)
        MyBase.SetDataGridInColumn(value)
        If (customDateTimePicker1.Parent IsNot Nothing) Then
            customDateTimePicker1.Parent.Controls.Remove(customDateTimePicker1)
        End If
        If (value IsNot Nothing) Then
            value.Controls.Add(customDateTimePicker1)
        End If
    End Sub

    Private Sub TimePickerValueChanged( _
        ByVal sender As Object, ByVal e As EventArgs)

        ' Remove the handler to prevent it from being called twice in a row.
        RemoveHandler customDateTimePicker1.ValueChanged, _
            AddressOf TimePickerValueChanged
        Me.isEditing = True
        MyBase.ColumnStartedEditing(customDateTimePicker1)

    End Sub

End Class

Public Class CustomDateTimePicker
    Inherits DateTimePicker

    <SecurityPermissionAttribute( _
    SecurityAction.LinkDemand, Flags := SecurityPermissionFlag.UnmanagedCode)> _
    Protected Overrides Function ProcessKeyMessage(ByRef m As Message) As Boolean
        ' Keep all the keys for the DateTimePicker.
        Return ProcessKeyEventArgs(m)
    End Function

End Class

Public Class MyForm
    Inherits Form

    Private namesDataTable As DataTable
    Private myGrid As DataGrid = New DataGrid()

    Public Sub New()

        InitForm()

        namesDataTable = New DataTable("NamesTable")
        namesDataTable.Columns.Add(New DataColumn("Name"))
        Dim dateColumn As DataColumn = _
             New DataColumn("Date", GetType(DateTime))
        dateColumn.DefaultValue = DateTime.Today
        namesDataTable.Columns.Add(dateColumn)
        Dim namesDataSet As DataSet = New DataSet()
        namesDataSet.Tables.Add(namesDataTable)
        myGrid.DataSource = namesDataSet
        myGrid.DataMember = "NamesTable"
        AddGridStyle()
        AddData()

    End Sub

    Private Sub AddGridStyle()
        Dim myGridStyle As DataGridTableStyle = _
                    New DataGridTableStyle()
        myGridStyle.MappingName = "NamesTable"

        Dim nameColumnStyle As DataGridTextBoxColumn = _
            New DataGridTextBoxColumn()
        nameColumnStyle.MappingName = "Name"
        nameColumnStyle.HeaderText = "Name"
        myGridStyle.GridColumnStyles.Add(nameColumnStyle)

        Dim customDateTimePicker1ColumnStyle As DataGridTimePickerColumn = _
            New DataGridTimePickerColumn()
        customDateTimePicker1ColumnStyle.MappingName = "Date"
        customDateTimePicker1ColumnStyle.HeaderText = "Date"
        customDateTimePicker1ColumnStyle.Width = 100
        myGridStyle.GridColumnStyles.Add(customDateTimePicker1ColumnStyle)

        myGrid.TableStyles.Add(myGridStyle)
    End Sub

    Private Sub AddData()
        Dim dRow As DataRow = namesDataTable.NewRow()
        dRow("Name") = "Name 1"
        dRow("Date") = New DateTime(2001, 12, 1)
        namesDataTable.Rows.Add(dRow)

        dRow = namesDataTable.NewRow()
        dRow("Name") = "Name 2"
        dRow("Date") = New DateTime(2001, 12, 4)
        namesDataTable.Rows.Add(dRow)

        dRow = namesDataTable.NewRow()
        dRow("Name") = "Name 3"
        dRow("Date") = New DateTime(2001, 12, 29)
        namesDataTable.Rows.Add(dRow)

        dRow = namesDataTable.NewRow()
        dRow("Name") = "Name 4"
        dRow("Date") = New DateTime(2001, 12, 13)
        namesDataTable.Rows.Add(dRow)

        dRow = namesDataTable.NewRow()
        dRow("Name") = "Name 5"
        dRow("Date") = New DateTime(2001, 12, 21)
        namesDataTable.Rows.Add(dRow)

        namesDataTable.AcceptChanges()
    End Sub

    Private Sub InitForm()
        Me.Size = New Size(500, 500)
        myGrid.Size = New Size(350, 250)
        myGrid.TabStop = True
        myGrid.TabIndex = 1
        Me.StartPosition = FormStartPosition.CenterScreen
        Me.Controls.Add(myGrid)
    End Sub

    <STAThread()> _
    Public Shared Sub Main()
        Application.Run(New MyForm())
    End Sub

End Class

Açıklamalar

Nesne koleksiyonuna DataGridColumnStyle () GridColumnStylesCollectiondenetimin System.Windows.Forms.DataGridTableStyles özelliği aracılığıyla erişilir.

Özelliği System.Windows.Forms.DataGrid uygun bir veri kaynağına ayarladığınızda DataSource denetim sizin için otomatik olarak bir nesne koleksiyonu DataGridColumnStyle oluşturur. Oluşturulan nesneler aslında öğesinden devralan aşağıdaki sınıflardan DataGridColumnStylebirinin örnekleridir: DataGridBoolColumn veya DataGridTextBoxColumn sınıfı.

Veri görünümünü biçimlendirmek için sınıfının özelliğini DataGridTextBoxColumn biçimlendirme değerlerinden birine ayarlayınFormat. Geçerli biçimlendirme değerleri hakkında daha fazla bilgi için bkz. Biçimlendirme Türleri ve Özel Tarih ve Saat Biçim Dizeleri.

Ayrıca kendi nesne kümenizi DataGridColumnStyle oluşturabilir ve bunları öğesine GridColumnStylesCollectionekleyebilirsiniz. Bunu yaptığınızda, sütunların MappingName görünümünü gerçek verilerle eşitlemek için ColumnName her sütun stilinin değerini olarak DataColumn ayarlamanız gerekir.

Dikkat

Nesneleri her zaman oluşturun DataGridColumnStyle ve nesnesine GridColumnStylesCollection eklemeden DataGridTableStyleGridTableStylesCollectionönce öğesine ekleyin. Koleksiyona geçerli MappingName bir değere sahip boş DataGridTableStyle bir değer eklediğinizde, DataGridColumnStyle nesneler sizin için otomatik olarak oluşturulur. Sonuç olarak, öğesine yinelenen MappingName değerlerle GridColumnStylesCollectionyeni DataGridColumnStyle nesneler eklemeye çalışırsanız bir özel durum oluşturulur.

Türetilmiş sınıflardan biri bir System.Windows.Forms.DataGrid denetim tarafından örneklendiğinde, oluşturulan sınıf nesnesiyle DataGridColumnStyle ilişkili öğesine DataColumn bağlıdırDataType. Örneğin, ayarlanmış System.Boolean olan bir DataColumnDataType ile DataGridBoolColumnilişkilendirilecektir. Herhangi bir DataGridColumnStyletürünün türünü belirlemek için yöntemini kullanın GetType .

Kendi sütun sınıflarınızı oluşturmak için öğesinden DataGridColumnStyledevralabilirsiniz. Denetimi barındıran sınıfı TextBox tarafından DataGridTextBox örneklendiği gibi denetimleri barındıran özel sütunlar oluşturmak için bunu yapmak isteyebilirsiniz. Örneğin, resimleri sütunlarda göstermek için bir Image denetim barındırabilir veya sütunda barındırmak için kendi kullanıcı denetiminizi oluşturabilirsiniz.

işlevinin DataGridColumnStyle işlevselliği, ile DataColumnkarıştırılmamalıdır. DataColumn veri tablosunun şemasını oluşturmaya uygun özellikleri ve yöntemleri içerirken, DataGridColumnStyle ekranda tek bir sütunun görünümüyle ilgili özellikleri ve yöntemleri içerir.

Satırda bir DBNull.Valuevarsa, sütunda görüntülenen metin özelliğiyle NullText ayarlanabilir.

sınıfı, DataGridColumnStyle verileri değiştirilirken bir sütunun davranışını belirtmenize de olanak tanır. BeginUpdate ve EndUpdate yöntemleri, sütunun verilerinde büyük güncelleştirmeler yapılırken sütunun çizimini geçici olarak askıya alır. Bu işlev olmadan, kılavuzun her hücresindeki her değişiklik hemen çizilir; bu durum kullanıcının dikkatini dağıtabilir ve performans sorumluluğu doğurabilir.

Ve olayları dahil olmak üzere çeşitli yöntemler, kullanıcı tarafından düzenlenirken sütunun izlenmesine EditCommit izin verir.

Sınıfın özelliklerinin ve yöntemlerinin çoğu bir sütunun görünümünü denetlemek için uyarlanmıştır. Ancak ve gibi GetColumnValueAtRowSetColumnValueAtRow birkaçı, belirtilen hücredeki değeri incelemenize ve değiştirmenize olanak sağlar.

Uygulayanlara Notlar

öğesinden DataGridColumnStyledevraldığınızda, şu üyeleri geçersiz kılmalısınız: Abort(Int32), Commit(CurrencyManager, Int32), Edit(CurrencyManager, Int32, Rectangle, Boolean)ve Paint(Graphics, Rectangle, CurrencyManager, Int32) (iki kez).

Oluşturucular

Name Description
DataGridColumnStyle()
Geçersiz.

Türetilmiş bir sınıfta sınıfının yeni bir örneğini DataGridColumnStyle başlatır.

DataGridColumnStyle(PropertyDescriptor)
Geçersiz.

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

Özellikler

Name Description
Alignment
Geçersiz.

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

CanRaiseEvents
Geçersiz.

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

(Devralındığı yer: Component)
Container
Geçersiz.

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

(Devralındığı yer: Component)
DataGridTableStyle
Geçersiz.

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

DesignMode
Geçersiz.

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

(Devralındığı yer: Component)
Events
Geçersiz.

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

(Devralındığı yer: Component)
FontHeight
Geçersiz.

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

HeaderAccessibleObject
Geçersiz.

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

HeaderText
Geçersiz.

Sütun üst bilgisinin metnini alır veya ayarlar.

MappingName
Geçersiz.

Sütun stilinin eşleneceğini veri üyesinin adını alır veya ayarlar.

NullText
Geçersiz.

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

PropertyDescriptor
Geçersiz.

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

ReadOnly
Geçersiz.

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

Site
Geçersiz.

öğesini alır veya ayarlar ISiteComponent.

(Devralındığı yer: Component)
Width
Geçersiz.

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

Yöntemler

Name Description
Abort(Int32)
Geçersiz.

Türetilmiş bir sınıfta geçersiz kılındığında, düzenleme yordamını kesme isteği başlatır.

BeginUpdate()
Geçersiz.

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

CheckValidDataSource(CurrencyManager)
Geçersiz.

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.

ColumnStartedEditing(Control)
Geçersiz.

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

Commit(CurrencyManager, Int32)
Geçersiz.

Türetilmiş bir sınıfta geçersiz kılındığında, düzenleme yordamını tamamlamak için bir istek başlatır.

ConcedeFocus()
Geçersiz.

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

CreateHeaderAccessibleObject()
Geçersiz.

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

CreateObjRef(Type)
Geçersiz.

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()
Geçersiz.

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

(Devralındığı yer: Component)
Dispose(Boolean)
Geçersiz.

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

(Devralındığı yer: Component)
Edit(CurrencyManager, Int32, Rectangle, Boolean, String, Boolean)
Geçersiz.

Türetilen bir sınıfta geçersiz kılındığında, hücreyi düzenlemeye hazırlar.

Edit(CurrencyManager, Int32, Rectangle, Boolean, String)
Geçersiz.

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

Edit(CurrencyManager, Int32, Rectangle, Boolean)
Geçersiz.

Hücreyi düzenlemeye hazırlar.

EndUpdate()
Geçersiz.

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

EnterNullValue()
Geçersiz.

Sütuna bir Value girer.

Equals(Object)
Geçersiz.

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

(Devralındığı yer: Object)
GetColumnValueAtRow(CurrencyManager, Int32)
Geçersiz.

Belirtilen satırdaki değeri belirtilen CurrencyManagersatırından alır.

GetHashCode()
Geçersiz.

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()
Geçersiz.

Türetilmiş bir sınıfta geçersiz kılındığında, satırın en düşük yüksekliğini alır.

GetPreferredHeight(Graphics, Object)
Geçersiz.

Türetilmiş bir sınıfta geçersiz kılındığında, sütunları otomatik olarak yeniden boyutlandırmak için kullanılan yüksekliği alır.

GetPreferredSize(Graphics, Object)
Geçersiz.

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen değerin genişliğini ve yüksekliğini alır. Genişlik ve yükseklik, kullanıcı kullanarak DataGridColumnStyleadresine DataGridTableStyle gittiği zaman kullanılır.

GetService(Type)
Geçersiz.

veya Componenttarafından Container sağlanan bir hizmeti temsil eden bir nesnesi döndürür.

(Devralındığı yer: Component)
GetType()
Geçersiz.

Geçerli örneğin Type 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()
Geçersiz.

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

MemberwiseClone()
Geçersiz.

Geçerli Objectbasit bir kopyasını oluşturur.

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

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

(Devralındığı yer: MarshalByRefObject)
Paint(Graphics, Rectangle, CurrencyManager, Int32, Boolean)
Geçersiz.

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen Graphics, , Rectangle, CurrencyManagersatır numarası ve hizalama ile bir DataGridColumnStyle boyar.

Paint(Graphics, Rectangle, CurrencyManager, Int32, Brush, Brush, Boolean)
Geçersiz.

Belirtilen Graphics, , , CurrencyManagersatır numarası, Rectanglearka plan rengi, ön plan rengi ve hizalama ile bir DataGridColumnStyle boyar.

Paint(Graphics, Rectangle, CurrencyManager, Int32)
Geçersiz.

DataGridColumnStyle öğesini belirtilen Graphics, , RectangleCurrencyManagerve satır numarasıyla boyar.

ReleaseHostedControl()
Geçersiz.

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

ResetHeaderText()
Geçersiz.

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

SetColumnValueAtRow(CurrencyManager, Int32, Object)
Geçersiz.

Belirtilen bir satırdaki değeri, belirtilen CurrencyManagerbir değerinden gelen değerle ayarlar.

SetDataGrid(DataGrid)
Geçersiz.

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

SetDataGridInColumn(DataGrid)
Geçersiz.

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

ToString()
Geçersiz.

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

(Devralındığı yer: Component)
UpdateUI(CurrencyManager, Int32, String)
Geçersiz.

Belirtilen satırın değerini verilen metinle güncelleştirir.

Ekinlikler

Name Description
AlignmentChanged
Geçersiz.

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

Disposed
Geçersiz.

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

(Devralındığı yer: Component)
FontChanged
Geçersiz.

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

HeaderTextChanged
Geçersiz.

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

MappingNameChanged
Geçersiz.

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

NullTextChanged
Geçersiz.

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

PropertyDescriptorChanged
Geçersiz.

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

ReadOnlyChanged
Geçersiz.

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

WidthChanged
Geçersiz.

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

Belirtik Arabirim Kullanımları

Name Description
IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing(Control)
Geçersiz.

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

Şunlara uygulanır

Ayrıca bkz.