DataGridViewComboBoxColumn Klasse

Definition

Stellt eine Spalte von DataGridViewComboBoxCell-Objekten dar.Represents a column of DataGridViewComboBoxCell objects.

public ref class DataGridViewComboBoxColumn : System::Windows::Forms::DataGridViewColumn
[System.Drawing.ToolboxBitmap(typeof(System.Windows.Forms.DataGridViewComboBoxColumn), "DataGridViewComboBoxColumn.bmp")]
[System.Drawing.ToolboxBitmap(typeof(System.Windows.Forms.DataGridViewComboBoxColumn), "DataGridViewComboBoxColumn")]
public class DataGridViewComboBoxColumn : System.Windows.Forms.DataGridViewColumn
type DataGridViewComboBoxColumn = class
    inherit DataGridViewColumn
Public Class DataGridViewComboBoxColumn
Inherits DataGridViewColumn
Vererbung
Attribute

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie verwendet DataGridViewComboBoxColumn wird, um die Eingabe von Daten TitleOfCourtesy in die-Spalte zu unterstützen.The following code example demonstrates how to use a DataGridViewComboBoxColumn to aid in entering data into the TitleOfCourtesy column.

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

#using <System.Xml.dll>
#using <System.EnterpriseServices.dll>
#using <System.Transactions.dll>
using namespace System;
using namespace System::Data;
using namespace System::Data::SqlClient;
using namespace System::Windows::Forms;
using namespace System::Collections::Generic;
using namespace System::Drawing;

public ref class Employees : public Form
{
private:
    DataGridView^ DataGridView1;

private:
    DataGridView^ DataGridView2;

public:
    [STAThread]
    static void Main()
    {
        try
        {
            Application::EnableVisualStyles();
            Application::Run(gcnew Employees());
        }
        catch (Exception^ e)
        {
            MessageBox::Show(e->Message + e->StackTrace);
        }
    }

private:
    Dictionary<String^, bool>^ inOffice;

public:
    Employees()
    {
        DataGridView1 = gcnew DataGridView();
        DataGridView2 = gcnew DataGridView();
        connectionString =
            "Integrated Security=SSPI;Persist Security Info=False;" +
            "Initial Catalog=Northwind;Data Source=localhost";
        inOffice = gcnew Dictionary<String^, bool>;

        this->Load += gcnew EventHandler(this, &Employees::Form1_Load);
    }

private:
    void Form1_Load(System::Object^ /*sender*/, System::EventArgs^ /*e*/)
    {
        try
        {
            SetUpForm();
            SetUpDataGridView1();
            SetUpDataGridView2();
        }
        catch (SqlException^)
        {
            MessageBox::Show("The connection string <"
                + connectionString
                + "> failed to connect.  Modify it "
                + "to connect to a Northwind database accessible to "
                + "your system.",
                "ERROR", MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
            Application::Exit();
        }
    }

private:
    void SetUpForm()
    {
        Size = System::Drawing::Size(800, 600);
        FlowLayoutPanel^ flowLayout = gcnew FlowLayoutPanel();
        flowLayout->FlowDirection = FlowDirection::TopDown;
        flowLayout->Dock = DockStyle::Fill;
        Controls->Add(flowLayout);

        flowLayout->Controls->Add(DataGridView1);
        flowLayout->Controls->Add(DataGridView2);
    }

private:
    void SetUpDataGridView2()
    {
        DataGridView2->Dock = DockStyle::Bottom;
        DataGridView2->TopLeftHeaderCell->Value = "Sales Details";
        DataGridView2->RowHeadersWidthSizeMode = 
            DataGridViewRowHeadersWidthSizeMode::AutoSizeToAllHeaders;
    }

private:
    void SetUpDataGridView1()
    {
        //DataGridView1.DataError += new 
          //  DataGridViewDataErrorEventHandler(DataGridView1_DataError);
        DataGridView1->CellContentClick += gcnew 
            DataGridViewCellEventHandler(this, &Employees::DataGridView1_CellContentClick);
        DataGridView1->CellValuePushed += gcnew 
            DataGridViewCellValueEventHandler(this, &Employees::DataGridView1_CellValuePushed);
        DataGridView1->CellValueNeeded += gcnew 
            DataGridViewCellValueEventHandler(this, &Employees::DataGridView1_CellValueNeeded);

        // Virtual mode is turned on so that the
        // unbound DataGridViewCheckBoxColumn will
        // keep its state when the bound columns are
        // sorted.       
        DataGridView1->VirtualMode = true;
        DataGridView1->AutoSize = true;
        DataGridView1->DataSource = Populate("SELECT * FROM Employees");
        DataGridView1->TopLeftHeaderCell->Value = "Employees";
        DataGridView1->RowHeadersWidthSizeMode = 
            DataGridViewRowHeadersWidthSizeMode::AutoSizeToAllHeaders;
        DataGridView1->ColumnHeadersHeightSizeMode = 
            DataGridViewColumnHeadersHeightSizeMode::AutoSize;
        DataGridView1->AutoSizeColumnsMode = 
            DataGridViewAutoSizeColumnsMode::AllCells;
        DataGridView1->AllowUserToAddRows = false;
        DataGridView1->AllowUserToDeleteRows = false;

        // The below autogenerated column is removed so 
        // a DataGridViewComboboxColumn could be used instead.
        DataGridView1->Columns->Remove(ColumnName::TitleOfCourtesy.ToString());
        DataGridView1->Columns->Remove(ColumnName::ReportsTo.ToString());

        AddLinkColumn();
        AddComboBoxColumns();
        AddButtonColumn();
        AddOutOfOfficeColumn();
    }

private:
    void AddComboBoxColumns()
    {
        DataGridViewComboBoxColumn^ comboboxColumn;
        comboboxColumn = CreateComboBoxColumn();
        SetAlternateChoicesUsingDataSource(comboboxColumn);
        comboboxColumn->HeaderText = "TitleOfCourtesy (via DataSource property)";
        DataGridView1->Columns->Insert(0, comboboxColumn);

        comboboxColumn = CreateComboBoxColumn();
        SetAlternateChoicesUsingItems(comboboxColumn);
        comboboxColumn->HeaderText = "TitleOfCourtesy (via Items property)";
        // Tack this example column onto the end.
        DataGridView1->Columns->Add(comboboxColumn);
    }

private:
    void AddLinkColumn()
    {
        DataGridViewLinkColumn^ links = gcnew DataGridViewLinkColumn();

        links->UseColumnTextForLinkValue = true;
        links->HeaderText = ColumnName::ReportsTo.ToString();
        links->DataPropertyName = ColumnName::ReportsTo.ToString();
        links->ActiveLinkColor = Color::White;
        links->LinkBehavior = LinkBehavior::SystemDefault;
        links->LinkColor = Color::Blue;
        links->TrackVisitedState = true;
        links->VisitedLinkColor = Color::YellowGreen;

        DataGridView1->Columns->Add(links);
    }

private:
    void SetAlternateChoicesUsingItems(
        DataGridViewComboBoxColumn^ comboboxColumn)
    {
        comboboxColumn->Items->AddRange("Mr.", "Ms.", "Mrs.", "Dr.");
    }

private:
    DataGridViewComboBoxColumn^ CreateComboBoxColumn()
    {
        DataGridViewComboBoxColumn^ column =
            gcnew DataGridViewComboBoxColumn();
        {
            column->DataPropertyName = ColumnName::TitleOfCourtesy.ToString();
            column->HeaderText = ColumnName::TitleOfCourtesy.ToString();
            column->DropDownWidth = 160;
            column->Width = 90;
            column->MaxDropDownItems = 3;
            column->FlatStyle = FlatStyle::Flat;
        }
        return column;
    }

private:
    void SetAlternateChoicesUsingDataSource(DataGridViewComboBoxColumn^ comboboxColumn)
    {
        {
            comboboxColumn->DataSource = RetrieveAlternativeTitles();
            comboboxColumn->ValueMember = ColumnName::TitleOfCourtesy.ToString();
            comboboxColumn->DisplayMember = comboboxColumn->ValueMember;
        }
    }

private:
    DataTable^ RetrieveAlternativeTitles()
    {
        return Populate("SELECT distinct TitleOfCourtesy FROM Employees");
    }

    String^ connectionString;

private:
    DataTable^ Populate(String^ sqlCommand)
    {
        SqlConnection^ northwindConnection = gcnew SqlConnection(connectionString);
        northwindConnection->Open();

        SqlCommand^ command = gcnew SqlCommand(sqlCommand, northwindConnection);
        SqlDataAdapter^ adapter = gcnew SqlDataAdapter();
        adapter->SelectCommand = command;

        DataTable^ table = gcnew DataTable();
        adapter->Fill(table);

        return table;
    }

    // Using an enum provides some abstraction between column index
    // and column name along with compile time checking, and gives
    // a handy place to store the column names.
    enum class ColumnName
    {
        EmployeeID,
        LastName,
        FirstName,
        Title,
        TitleOfCourtesy,
        BirthDate,
        HireDate,
        Address,
        City,
        Region,
        PostalCode,
        Country,
        HomePhone,
        Extension,
        Photo,
        Notes,
        ReportsTo,
        PhotoPath,
        OutOfOffice
    };

private:
    void AddButtonColumn()
    {
        DataGridViewButtonColumn^ buttons = gcnew DataGridViewButtonColumn();
        {
            buttons->HeaderText = "Sales";
            buttons->Text = "Sales";
            buttons->UseColumnTextForButtonValue = true;
            buttons->AutoSizeMode =
                DataGridViewAutoSizeColumnMode::AllCells;
            buttons->FlatStyle = FlatStyle::Standard;
            buttons->CellTemplate->Style->BackColor = Color::Honeydew;
            buttons->DisplayIndex = 0;
        }

        DataGridView1->Columns->Add(buttons);

    }

private:
    void AddOutOfOfficeColumn()
    {
        DataGridViewCheckBoxColumn^ column = gcnew DataGridViewCheckBoxColumn();
        {
            column->HeaderText = ColumnName::OutOfOffice.ToString();
            column->Name = ColumnName::OutOfOffice.ToString();
            column->AutoSizeMode = 
                DataGridViewAutoSizeColumnMode::DisplayedCells;
            column->FlatStyle = FlatStyle::Standard;
            column->ThreeState = true;
            column->CellTemplate = gcnew DataGridViewCheckBoxCell();
            column->CellTemplate->Style->BackColor = Color::Beige;
        }

        DataGridView1->Columns->Insert(0, column);
    }

private:
    void PopulateSales(DataGridViewCellEventArgs^ buttonClick)
    {

        String^ employeeID = DataGridView1->Rows[buttonClick->RowIndex]
            ->Cells[ColumnName::EmployeeID.ToString()]->Value->ToString();
        DataGridView2->DataSource = Populate("SELECT * FROM Orders WHERE EmployeeID = " + employeeID);
    }

    #pragma region "SQL Error handling"
private:
    void DataGridView1_DataError(Object^ sender, DataGridViewDataErrorEventArgs^ anError)
    {

        MessageBox::Show("Error happened " + anError->Context.ToString());

        if (anError->Context == DataGridViewDataErrorContexts::Commit)
        {
            MessageBox::Show("Commit error");
        }
        if (anError->Context == DataGridViewDataErrorContexts::CurrentCellChange)
        {
            MessageBox::Show("Cell change");
        }
        if (anError->Context == DataGridViewDataErrorContexts::Parsing)
        {
            MessageBox::Show("parsing error");
        }
        if (anError->Context == DataGridViewDataErrorContexts::LeaveControl)
        {
            MessageBox::Show("leave control error");
        }

        if (dynamic_cast<ConstraintException^>(anError->Exception) != nullptr)
        {
            DataGridView^ view = (DataGridView^)sender;
            view->Rows[anError->RowIndex]->ErrorText = "an error";
            view->Rows[anError->RowIndex]->Cells[anError->ColumnIndex]->ErrorText = "an error";

            anError->ThrowException = false;
        }
    }
    #pragma endregion

private:
    void DataGridView1_CellContentClick(Object^ /*sender*/, DataGridViewCellEventArgs^ e)
    {

        if (IsANonHeaderLinkCell(e))
        {
            MoveToLinked(e);
        }
        else if (IsANonHeaderButtonCell(e))
        {
            PopulateSales(e);
        }
    }

private:
    void MoveToLinked(DataGridViewCellEventArgs^ e)
    {
        String^ employeeId;
        Object^ value = DataGridView1->Rows[e->RowIndex]->Cells[e->ColumnIndex]->Value;
        if (dynamic_cast<DBNull^>(value) != nullptr) { return; }

        employeeId = value->ToString();
        DataGridViewCell^ boss = RetrieveSuperiorsLastNameCell(employeeId);
        if (boss != nullptr)
        {
            DataGridView1->CurrentCell = boss;
        }
    }

private:
    bool IsANonHeaderLinkCell(DataGridViewCellEventArgs^ cellEvent)
    {
        if (dynamic_cast<DataGridViewLinkColumn^>(DataGridView1->Columns[cellEvent->ColumnIndex]) != nullptr
             &&
            cellEvent->RowIndex != -1)
        { return true; }
        else { return false; }
    }

private:
    bool IsANonHeaderButtonCell(DataGridViewCellEventArgs^ cellEvent)
    {
        if (dynamic_cast<DataGridViewButtonColumn^>(DataGridView1->Columns[cellEvent->ColumnIndex]) != nullptr
             &&
            cellEvent->RowIndex != -1)
        { return true; }
        else { return (false); }
    }

private:
    DataGridViewCell^ RetrieveSuperiorsLastNameCell(String^ employeeId)
    {

        for each (DataGridViewRow^ row in DataGridView1->Rows)
        {
            if (row->IsNewRow) { return nullptr; }
            if (row->Cells[ColumnName::EmployeeID.ToString()]->Value->ToString()->Equals(employeeId))
            {
                return row->Cells[ColumnName::LastName.ToString()];
            }
        }
        return nullptr;
    }

    #pragma region "checkbox state"

private:
    void DataGridView1_CellValuePushed(Object^ sender,
        DataGridViewCellValueEventArgs^ e)
    {
        if (IsCheckBoxColumn(e->ColumnIndex))
        {
            String^ employeeId = GetKey(e);
            if (!inOffice->ContainsKey(employeeId))
            {
                inOffice->Add(employeeId, (Boolean)e->Value);
            }
            else
            {
                inOffice[employeeId] = (Boolean)e->Value;
            }
        }
    }

private:
    String^ GetKey(DataGridViewCellValueEventArgs^ cell)
    {
        return DataGridView1->Rows[cell->RowIndex]->
            Cells[ColumnName::EmployeeID.ToString()]->Value->ToString();
    }

private:
    void DataGridView1_CellValueNeeded(Object^ sender,
        DataGridViewCellValueEventArgs^ e)
    {

        if (IsCheckBoxColumn(e->ColumnIndex))
        {
            String^ employeeId = GetKey(e);
            if (!inOffice->ContainsKey(employeeId))
            {
                bool defaultValue = false;
                inOffice->Add(employeeId, defaultValue);
            }

            e->Value = inOffice[employeeId];
        }
    }

private:
    bool IsCheckBoxColumn(int columnIndex)
    {
        DataGridViewColumn^ outOfOfficeColumn =
            DataGridView1->Columns[ColumnName::OutOfOffice.ToString()];
        return (DataGridView1->Columns[columnIndex] == outOfOfficeColumn);
    }
    #pragma endregion
};

int main()
{
    Employees::Main();
}
using System;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
using System.Collections.Generic;
using System.Drawing;

public class Employees : Form
{
    private DataGridView DataGridView1 = new DataGridView();
    private DataGridView DataGridView2 = new DataGridView();

    [STAThread]
    public static void Main()
    {
        try
        {
            Application.EnableVisualStyles();
            Application.Run(new Employees());
        }
        catch (Exception e)
        {
            MessageBox.Show(e.Message + e.StackTrace);
        }
    }

    public Employees()
    {
        this.Load += new EventHandler(Form1_Load);
    }

    private void Form1_Load(System.Object sender, System.EventArgs e)
    {
        try
        {
            SetUpForm();
            SetUpDataGridView1();
            SetUpDataGridView2();
        }
        catch (SqlException)
        {
            MessageBox.Show("The connection string <"
                + connectionString
                + "> failed to connect.  Modify it "
                + "to connect to a Northwind database accessible to "
                + "your system.",
                "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            Application.Exit();
        }
    }

    private void SetUpForm()
    {
        Size = new Size(800, 600);
        FlowLayoutPanel flowLayout = new FlowLayoutPanel();
        flowLayout.FlowDirection = FlowDirection.TopDown;
        flowLayout.Dock = DockStyle.Fill;
        Controls.Add(flowLayout);
        Text = "DataGridView columns demo";

        flowLayout.Controls.Add(DataGridView1);
        flowLayout.Controls.Add(DataGridView2);
    }

    private void SetUpDataGridView2()
    {
        DataGridView2.Dock = DockStyle.Bottom;
        DataGridView2.TopLeftHeaderCell.Value = "Sales Details";
        DataGridView2.RowHeadersWidthSizeMode = 
            DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;
    }

    private void SetUpDataGridView1()
    {
        DataGridView1.DataError += new 
            DataGridViewDataErrorEventHandler(DataGridView1_DataError);
        DataGridView1.CellContentClick += new 
            DataGridViewCellEventHandler(DataGridView1_CellContentClick);
        DataGridView1.CellValuePushed += new 
            DataGridViewCellValueEventHandler(DataGridView1_CellValuePushed);
        DataGridView1.CellValueNeeded += new 
            DataGridViewCellValueEventHandler(DataGridView1_CellValueNeeded);

        // Virtual mode is turned on so that the
        // unbound DataGridViewCheckBoxColumn will
        // keep its state when the bound columns are
        // sorted.       
        DataGridView1.VirtualMode = true;
        DataGridView1.AutoSize = true;
        DataGridView1.DataSource = Populate("SELECT * FROM Employees");
        DataGridView1.TopLeftHeaderCell.Value = "Employees";
        DataGridView1.RowHeadersWidthSizeMode = 
            DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;
        DataGridView1.ColumnHeadersHeightSizeMode = 
            DataGridViewColumnHeadersHeightSizeMode.AutoSize;
        DataGridView1.AutoSizeColumnsMode = 
            DataGridViewAutoSizeColumnsMode.AllCells;
        DataGridView1.AllowUserToAddRows = false;
        DataGridView1.AllowUserToDeleteRows = false;

        // The below autogenerated column is removed so 
        // a DataGridViewComboboxColumn could be used instead.
        DataGridView1.Columns.Remove(ColumnName.TitleOfCourtesy.ToString());
        DataGridView1.Columns.Remove(ColumnName.ReportsTo.ToString());

        AddLinkColumn();
        AddComboBoxColumns();
        AddButtonColumn();
        AddOutOfOfficeColumn();
    }

    private void AddComboBoxColumns()
    {
        DataGridViewComboBoxColumn comboboxColumn;
        comboboxColumn = CreateComboBoxColumn();
        SetAlternateChoicesUsingDataSource(comboboxColumn);
        comboboxColumn.HeaderText = "TitleOfCourtesy (via DataSource property)";
        DataGridView1.Columns.Insert(0, comboboxColumn);

        comboboxColumn = CreateComboBoxColumn();
        SetAlternateChoicesUsingItems(comboboxColumn);
        comboboxColumn.HeaderText = "TitleOfCourtesy (via Items property)";
        // Tack this example column onto the end.
        DataGridView1.Columns.Add(comboboxColumn);
    }

    private void AddLinkColumn()
    {
        DataGridViewLinkColumn links = new DataGridViewLinkColumn();

        links.UseColumnTextForLinkValue = true;
        links.HeaderText = ColumnName.ReportsTo.ToString();
        links.DataPropertyName = ColumnName.ReportsTo.ToString();
        links.ActiveLinkColor = Color.White;
        links.LinkBehavior = LinkBehavior.SystemDefault;
        links.LinkColor = Color.Blue;
        links.TrackVisitedState = true;
        links.VisitedLinkColor = Color.YellowGreen;

        DataGridView1.Columns.Add(links);
    }

    private static void SetAlternateChoicesUsingItems(
        DataGridViewComboBoxColumn comboboxColumn)
    {
        comboboxColumn.Items.AddRange("Mr.", "Ms.", "Mrs.", "Dr.");
    }

    private DataGridViewComboBoxColumn CreateComboBoxColumn()
    {
        DataGridViewComboBoxColumn column =
            new DataGridViewComboBoxColumn();
        {
            column.DataPropertyName = ColumnName.TitleOfCourtesy.ToString();
            column.HeaderText = ColumnName.TitleOfCourtesy.ToString();
            column.DropDownWidth = 160;
            column.Width = 90;
            column.MaxDropDownItems = 3;
            column.FlatStyle = FlatStyle.Flat;
        }
        return column;
    }

    private void SetAlternateChoicesUsingDataSource(DataGridViewComboBoxColumn comboboxColumn)
    {
        {
            comboboxColumn.DataSource = RetrieveAlternativeTitles();
            comboboxColumn.ValueMember = ColumnName.TitleOfCourtesy.ToString();
            comboboxColumn.DisplayMember = comboboxColumn.ValueMember;
        }
    }

    private DataTable RetrieveAlternativeTitles()
    {
        return Populate("SELECT distinct TitleOfCourtesy FROM Employees");
    }

    string connectionString =
        "Integrated Security=SSPI;Persist Security Info=False;" +
        "Initial Catalog=Northwind;Data Source=localhost";

    private DataTable Populate(string sqlCommand)
    {
        SqlConnection northwindConnection = new SqlConnection(connectionString);
        northwindConnection.Open();

        SqlCommand command = new SqlCommand(sqlCommand, northwindConnection);
        SqlDataAdapter adapter = new SqlDataAdapter();
        adapter.SelectCommand = command;

        DataTable table = new DataTable();
        table.Locale = System.Globalization.CultureInfo.InvariantCulture;
        adapter.Fill(table);

        return table;
    }

    // Using an enum provides some abstraction between column index
    // and column name along with compile time checking, and gives
    // a handy place to store the column names.
    enum ColumnName
    {
        EmployeeId,
        LastName,
        FirstName,
        Title,
        TitleOfCourtesy,
        BirthDate,
        HireDate,
        Address,
        City,
        Region,
        PostalCode,
        Country,
        HomePhone,
        Extension,
        Photo,
        Notes,
        ReportsTo,
        PhotoPath,
        OutOfOffice
    };

    private void AddButtonColumn()
    {
        DataGridViewButtonColumn buttons = new DataGridViewButtonColumn();
        {
            buttons.HeaderText = "Sales";
            buttons.Text = "Sales";
            buttons.UseColumnTextForButtonValue = true;
            buttons.AutoSizeMode =
                DataGridViewAutoSizeColumnMode.AllCells;
            buttons.FlatStyle = FlatStyle.Standard;
            buttons.CellTemplate.Style.BackColor = Color.Honeydew;
            buttons.DisplayIndex = 0;
        }

        DataGridView1.Columns.Add(buttons);

    }

    private void AddOutOfOfficeColumn()
    {
        DataGridViewCheckBoxColumn column = new DataGridViewCheckBoxColumn();
        {
            column.HeaderText = ColumnName.OutOfOffice.ToString();
            column.Name = ColumnName.OutOfOffice.ToString();
            column.AutoSizeMode = 
                DataGridViewAutoSizeColumnMode.DisplayedCells;
            column.FlatStyle = FlatStyle.Standard;
            column.ThreeState = true;
            column.CellTemplate = new DataGridViewCheckBoxCell();
            column.CellTemplate.Style.BackColor = Color.Beige;
        }

        DataGridView1.Columns.Insert(0, column);
    }

    private void PopulateSales(DataGridViewCellEventArgs buttonClick)
    {

        string employeeId = DataGridView1.Rows[buttonClick.RowIndex]
            .Cells[ColumnName.EmployeeId.ToString()].Value.ToString();
        DataGridView2.DataSource = Populate("SELECT * FROM Orders WHERE EmployeeId = " + employeeId);
    }

    #region "SQL Error handling"
    private void DataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs anError)
    {

        MessageBox.Show("Error happened " + anError.Context.ToString());

        if (anError.Context == DataGridViewDataErrorContexts.Commit)
        {
            MessageBox.Show("Commit error");
        }
        if (anError.Context == DataGridViewDataErrorContexts.CurrentCellChange)
        {
            MessageBox.Show("Cell change");
        }
        if (anError.Context == DataGridViewDataErrorContexts.Parsing)
        {
            MessageBox.Show("parsing error");
        }
        if (anError.Context == DataGridViewDataErrorContexts.LeaveControl)
        {
            MessageBox.Show("leave control error");
        }

        if ((anError.Exception) is ConstraintException)
        {
            DataGridView view = (DataGridView)sender;
            view.Rows[anError.RowIndex].ErrorText = "an error";
            view.Rows[anError.RowIndex].Cells[anError.ColumnIndex].ErrorText = "an error";

            anError.ThrowException = false;
        }
    }
    #endregion

    private void DataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {

        if (IsANonHeaderLinkCell(e))
        {
            MoveToLinked(e);
        }
        else if (IsANonHeaderButtonCell(e))
        {
            PopulateSales(e);
        }
    }

    private void MoveToLinked(DataGridViewCellEventArgs e)
    {
        string employeeId;
        object value = DataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
        if (value is DBNull) { return; }

        employeeId = value.ToString();
        DataGridViewCell boss = RetrieveSuperiorsLastNameCell(employeeId);
        if (boss != null)
        {
            DataGridView1.CurrentCell = boss;
        }
    }

    private bool IsANonHeaderLinkCell(DataGridViewCellEventArgs cellEvent)
    {
        if (DataGridView1.Columns[cellEvent.ColumnIndex] is
            DataGridViewLinkColumn &&
            cellEvent.RowIndex != -1)
        { return true; }
        else { return false; }
    }

    private bool IsANonHeaderButtonCell(DataGridViewCellEventArgs cellEvent)
    {
        if (DataGridView1.Columns[cellEvent.ColumnIndex] is
            DataGridViewButtonColumn &&
            cellEvent.RowIndex != -1)
        { return true; }
        else { return (false); }
    }

    private DataGridViewCell RetrieveSuperiorsLastNameCell(string employeeId)
    {

        foreach (DataGridViewRow row in DataGridView1.Rows)
        {
            if (row.IsNewRow) { return null; }
            if (row.Cells[ColumnName.EmployeeId.ToString()].Value.ToString().Equals(employeeId))
            {
                return row.Cells[ColumnName.LastName.ToString()];
            }
        }
        return null;
    }

    #region "checkbox state"
    Dictionary<string, bool> inOffice = new Dictionary<string, bool>();
    private void DataGridView1_CellValuePushed(object sender,
        DataGridViewCellValueEventArgs e)
    {
        if (IsCheckBoxColumn(e.ColumnIndex))
        {
            string employeeId = GetKey(e);
            if (!inOffice.ContainsKey(employeeId))
            {
                inOffice.Add(employeeId, (Boolean)e.Value);
            }
            else
            {
                inOffice[employeeId] = (Boolean)e.Value;
            }
        }
    }

    private string GetKey(DataGridViewCellValueEventArgs cell)
    {
        return DataGridView1.Rows[cell.RowIndex].
            Cells[ColumnName.EmployeeId.ToString()].Value.ToString();
    }

    private void DataGridView1_CellValueNeeded(object sender,
        DataGridViewCellValueEventArgs e)
    {

        if (IsCheckBoxColumn(e.ColumnIndex))
        {
            string employeeId = GetKey(e);
            if (!inOffice.ContainsKey(employeeId))
            {
                bool defaultValue = false;
                inOffice.Add(employeeId, defaultValue);
            }

            e.Value = inOffice[employeeId];
        }
    }

    private bool IsCheckBoxColumn(int columnIndex)
    {
        DataGridViewColumn outOfOfficeColumn =
            DataGridView1.Columns[ColumnName.OutOfOffice.ToString()];
        return (DataGridView1.Columns[columnIndex] == outOfOfficeColumn);
    }
    #endregion
}
Imports System.Data
Imports System.Data.SqlClient
Imports System.Windows.Forms
Imports System.Collections.Generic
Imports System.Drawing

Public Class Employees
    Inherits System.Windows.Forms.Form

    Private WithEvents DataGridView1 As New DataGridView
    Private WithEvents DataGridView2 As New DataGridView

    <STAThreadAttribute()> _
    Public Shared Sub Main()
        Try
            Application.EnableVisualStyles()
            Application.Run(New Employees())
        Catch e As Exception
            MessageBox.Show(e.Message & e.StackTrace)
        End Try
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles MyBase.Load

        Try
            SetUpForm()
            SetUpDataGridView1()
            SetUpDataGridView2()
        Catch ex As SqlException
            MessageBox.Show("The connection string <" _
                & connectionString _
                & "> failed to connect.  Modify it to connect to " _
                & "a Northwind database accessible to your system.", _
                "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            Application.Exit()
        End Try
    End Sub

    Private Sub SetUpForm()
        Size = New Size(800, 600)
        Dim flowLayout As New FlowLayoutPanel()
        flowLayout.FlowDirection = FlowDirection.TopDown
        flowLayout.Dock = DockStyle.Fill
        Controls.Add(flowLayout)
        Text = "DataGridView columns demo"

        flowLayout.Controls.Add(DataGridView1)
        flowLayout.Controls.Add(DataGridView2)
    End Sub

    Private Sub SetUpDataGridView2()
        DataGridView2.Dock = DockStyle.Bottom
        DataGridView2.TopLeftHeaderCell.Value = "Sales Details"
        DataGridView2.RowHeadersWidthSizeMode = _
        DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders
    End Sub

    Private Sub SetUpDataGridView1()
        ' Virtual mode is turned on so that the
        ' unbound DataGridViewCheckBoxColumn will
        ' keep its state when the bound columns are
        ' sorted.
        DataGridView1.VirtualMode = True

        DataGridView1.AutoSize = True
        DataGridView1.DataSource = _
            Populate("SELECT * FROM Employees")
        DataGridView1.TopLeftHeaderCell.Value = "Employees"
        DataGridView1.RowHeadersWidthSizeMode = _
            DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders
        DataGridView1.ColumnHeadersHeightSizeMode = _
            DataGridViewColumnHeadersHeightSizeMode.AutoSize
        DataGridView1.AutoSizeColumnsMode = _
            DataGridViewAutoSizeColumnsMode.AllCells
        DataGridView1.AllowUserToAddRows = False
        DataGridView1.AllowUserToDeleteRows = False

        ' The below autogenerated column is removed so 
        ' a DataGridViewComboboxColumn could be used instead.
        DataGridView1.Columns.Remove( _
            ColumnName.TitleOfCourtesy.ToString())
        DataGridView1.Columns.Remove(ColumnName.ReportsTo.ToString())

        AddLinkColumn()
        AddComboBoxColumns()
        AddButtonColumn()
        AddOutOfOfficeColumn()
    End Sub

    Private Sub AddComboBoxColumns()
        Dim comboboxColumn As DataGridViewComboBoxColumn
        comboboxColumn = CreateComboBoxColumn()
        SetAlternateChoicesUsingDataSource(comboboxColumn)
        comboboxColumn.HeaderText = _
            "TitleOfCourtesy (via DataSource property)"
        DataGridView1.Columns.Insert(0, comboboxColumn)

        comboboxColumn = CreateComboBoxColumn()
        SetAlternateChoicesUsingItems(comboboxColumn)
        comboboxColumn.HeaderText = _
            "TitleOfCourtesy (via Items property)"
        ' Tack this example column onto the end.
        DataGridView1.Columns.Add(comboboxColumn)
    End Sub

    Private Sub AddLinkColumn()

        Dim links As New DataGridViewLinkColumn()
        With links
            .UseColumnTextForLinkValue = True
            .HeaderText = ColumnName.ReportsTo.ToString()
            .DataPropertyName = ColumnName.ReportsTo.ToString()
            .ActiveLinkColor = Color.White
            .LinkBehavior = LinkBehavior.SystemDefault
            .LinkColor = Color.Blue
            .TrackVisitedState = True
            .VisitedLinkColor = Color.YellowGreen
        End With
        DataGridView1.Columns.Add(links)
    End Sub

    Private Shared Sub SetAlternateChoicesUsingItems( _
        ByVal comboboxColumn As DataGridViewComboBoxColumn)

        comboboxColumn.Items.AddRange("Mr.", "Ms.", "Mrs.", "Dr.")

    End Sub

    Private Function CreateComboBoxColumn() _
        As DataGridViewComboBoxColumn
        Dim column As New DataGridViewComboBoxColumn()

        With column
            .DataPropertyName = ColumnName.TitleOfCourtesy.ToString()
            .HeaderText = ColumnName.TitleOfCourtesy.ToString()
            .DropDownWidth = 160
            .Width = 90
            .MaxDropDownItems = 3
            .FlatStyle = FlatStyle.Flat
        End With
        Return column
    End Function

    Private Sub SetAlternateChoicesUsingDataSource( _
        ByVal comboboxColumn As DataGridViewComboBoxColumn)
        With comboboxColumn
            .DataSource = RetrieveAlternativeTitles()
            .ValueMember = ColumnName.TitleOfCourtesy.ToString()
            .DisplayMember = .ValueMember
        End With
    End Sub

    Private Function RetrieveAlternativeTitles() As DataTable
        Return Populate( _
            "SELECT distinct TitleOfCourtesy FROM Employees")
    End Function

    Private connectionString As String = _
            "Integrated Security=SSPI;Persist Security Info=False;" _
            & "Initial Catalog=Northwind;Data Source=localhost"

    Private Function Populate(ByVal sqlCommand As String) As DataTable
        Dim northwindConnection As New SqlConnection(connectionString)
        northwindConnection.Open()

        Dim command As New SqlCommand(sqlCommand, _
            northwindConnection)
        Dim adapter As New SqlDataAdapter()
        adapter.SelectCommand = command
        Dim table As New DataTable()
        table.Locale = System.Globalization.CultureInfo.InvariantCulture
        adapter.Fill(table)

        Return table
    End Function

    ' Using an enum provides some abstraction between column index
    ' and column name along with compile time checking, and gives
    ' a handy place to store the column names.
    Enum ColumnName
        EmployeeId
        LastName
        FirstName
        Title
        TitleOfCourtesy
        BirthDate
        HireDate
        Address
        City
        Region
        PostalCode
        Country
        HomePhone
        Extension
        Photo
        Notes
        ReportsTo
        PhotoPath
        OutOfOffice
    End Enum

    Private Sub AddButtonColumn()
        Dim buttons As New DataGridViewButtonColumn()
        With buttons
            .HeaderText = "Sales"
            .Text = "Sales"
            .UseColumnTextForButtonValue = True
            .AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells
            .FlatStyle = FlatStyle.Standard
            .CellTemplate.Style.BackColor = Color.Honeydew
            .DisplayIndex = 0
        End With

        DataGridView1.Columns.Add(buttons)

    End Sub

    Private Sub AddOutOfOfficeColumn()
        Dim column As New DataGridViewCheckBoxColumn()
        With column
            .HeaderText = ColumnName.OutOfOffice.ToString()
            .Name = ColumnName.OutOfOffice.ToString()
            .AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells
            .FlatStyle = FlatStyle.Standard
            .CellTemplate = New DataGridViewCheckBoxCell()
            .CellTemplate.Style.BackColor = Color.Beige
        End With

        DataGridView1.Columns.Insert(0, column)
    End Sub

    Private Sub PopulateSales( _
        ByVal buttonClick As DataGridViewCellEventArgs)

        Dim employeeId As String = _
            DataGridView1.Rows(buttonClick.RowIndex). _
            Cells(ColumnName.EmployeeId.ToString()).Value().ToString()
        DataGridView2.DataSource = Populate( _
            "SELECT * FROM Orders WHERE EmployeeId = " & employeeId)
    End Sub

#Region "SQL Error handling"
    Private Sub DataGridView1_DataError(ByVal sender As Object, _
    ByVal e As DataGridViewDataErrorEventArgs) _
    Handles DataGridView1.DataError

        MessageBox.Show("Error happened " _
            & e.Context.ToString())

        If (e.Context = DataGridViewDataErrorContexts.Commit) _
            Then
            MessageBox.Show("Commit error")
        End If
        If (e.Context = DataGridViewDataErrorContexts _
            .CurrentCellChange) Then
            MessageBox.Show("Cell change")
        End If
        If (e.Context = DataGridViewDataErrorContexts.Parsing) _
            Then
            MessageBox.Show("parsing error")
        End If
        If (e.Context = _
            DataGridViewDataErrorContexts.LeaveControl) Then
            MessageBox.Show("leave control error")
        End If

        If (TypeOf (e.Exception) Is ConstraintException) Then
            Dim view As DataGridView = CType(sender, DataGridView)
            view.Rows(e.RowIndex).ErrorText = "an error"
            view.Rows(e.RowIndex).Cells(e.ColumnIndex) _
                .ErrorText = "an error"

            e.ThrowException = False
        End If
    End Sub
#End Region

    Private Sub DataGridView1_CellContentClick(ByVal sender As Object, _
        ByVal e As DataGridViewCellEventArgs) _
        Handles DataGridView1.CellContentClick

        If IsANonHeaderLinkCell(e) Then
            MoveToLinked(e)
        ElseIf IsANonHeaderButtonCell(e) Then
            PopulateSales(e)
        End If
    End Sub

    Private Sub MoveToLinked(ByVal e As DataGridViewCellEventArgs)
        Dim employeeId As String
        Dim value As Object = DataGridView1.Rows(e.RowIndex). _
            Cells(e.ColumnIndex).Value
        If value.GetType Is GetType(DBNull) Then Return

        employeeId = CType(value, String)
        Dim boss As DataGridViewCell = _
            RetrieveSuperiorsLastNameCell(employeeId)
        If boss IsNot Nothing Then
            DataGridView1.CurrentCell = boss
        End If
    End Sub

    Private Function IsANonHeaderLinkCell(ByVal cellEvent As _
        DataGridViewCellEventArgs) As Boolean

        If TypeOf DataGridView1.Columns(cellEvent.ColumnIndex) _
            Is DataGridViewLinkColumn _
            AndAlso Not cellEvent.RowIndex = -1 Then _
            Return True Else Return False

    End Function

    Private Function IsANonHeaderButtonCell(ByVal cellEvent As _
        DataGridViewCellEventArgs) As Boolean

        If TypeOf DataGridView1.Columns(cellEvent.ColumnIndex) _
            Is DataGridViewButtonColumn _
            AndAlso Not cellEvent.RowIndex = -1 Then _
            Return True Else Return (False)

    End Function

    Private Function RetrieveSuperiorsLastNameCell( _
        ByVal employeeId As String) As DataGridViewCell

        For Each row As DataGridViewRow In DataGridView1.Rows
            If row.IsNewRow Then Return Nothing
            If row.Cells(ColumnName.EmployeeId.ToString()). _
                Value.ToString().Equals(employeeId) Then
                Return row.Cells(ColumnName.LastName.ToString())
            End If
        Next
        Return Nothing
    End Function

#Region "checkbox state"
    Dim inOffice As New Dictionary(Of String, Boolean)
    Private Sub DataGridView1_CellValuePushed(ByVal sender As Object, _
     ByVal e As DataGridViewCellValueEventArgs) _
        Handles DataGridView1.CellValuePushed

        If IsCheckBoxColumn(e.ColumnIndex) Then
            Dim employeeId As String = GetKey(e)
            If Not inOffice.ContainsKey(employeeId) Then
                inOffice.Add(employeeId, CType(e.Value, Boolean))
            Else
                inOffice.Item(employeeId) = CType(e.Value, Boolean)
            End If
        End If
    End Sub

    Private Function GetKey(ByVal cell As DataGridViewCellValueEventArgs) As String
        Return DataGridView1.Rows(cell.RowIndex).Cells( _
            ColumnName.EmployeeId.ToString()).Value().ToString()
    End Function

    Private Sub DataGridView1_CellValueNeeded(ByVal sender As Object, _
     ByVal e As DataGridViewCellValueEventArgs) _
        Handles DataGridView1.CellValueNeeded

        If IsCheckBoxColumn(e.ColumnIndex) Then
            Dim employeeId As String = GetKey(e)
            If Not inOffice.ContainsKey(employeeId) Then
                Dim defaultValue As Boolean = False
                inOffice.Add(employeeId, defaultValue)
            End If

            e.Value = inOffice.Item(employeeId)
        End If
    End Sub

    Private Function IsCheckBoxColumn(ByVal columnIndex As Integer) As Boolean

        Dim outOfOfficeColumn As DataGridViewColumn = _
            DataGridView1.Columns(ColumnName.OutOfOffice.ToString())
        Return (DataGridView1.Columns(columnIndex) Is outOfOfficeColumn)

    End Function
#End Region

End Class

Hinweise

Die DataGridViewComboBoxColumn -Klasse ist ein spezieller Typ DataGridViewColumn von, der verwendet wird, um Zellen logisch zu hosten, die es Benutzern ermöglichen, Werte aus einer Auswahlliste auszuwählen.The DataGridViewComboBoxColumn class is a specialized type of DataGridViewColumn used to logically host cells that enable users to select values from a list of choices. Ein DataGridViewComboBoxColumn verfügt über DataGridViewComboBoxCell ein zugeordnetes in jeder DataGridViewRow , die es schneidet.A DataGridViewComboBoxColumn has an associated DataGridViewComboBoxCell in every DataGridViewRow that intersects it.

Sie können die Zellen manuell auffüllen, indem Sie die Value entsprechenden Eigenschaften festlegen.You can populate the cells manually by setting their Value properties. Alternativ können Sie die Spalte an die von der DataGridView.DataSource -Eigenschaft festgestellte Datenquelle binden.Alternatively, you can bind the column to the data source indicated by the DataGridView.DataSource property. Wenn der DataGridView an eine Datenbanktabelle gebunden ist, legen Sie DataPropertyName die Column-Eigenschaft auf den Namen einer Spalte in der Tabelle fest.If the DataGridView is bound to a database table, set the column DataPropertyName property to the name of a column in the table. Wenn der DataGridView an eine Auflistung von-Objekten gebunden ist, legen DataPropertyName Sie die-Eigenschaft auf den Namen einer Objekt Eigenschaft fest.If the DataGridView is bound to a collection of objects, set the DataPropertyName property to the name of an object property.

Sie können die Dropdown Liste der Spalte manuell auffüllen, indem Sie der Items Auflistung Werte hinzufügen.You can populate the column drop-down list manually by adding values to the Items collection. Alternativ dazu können Sie die Dropdown Liste auch durch Festlegen der Column DataSource -Eigenschaft an eine eigene Datenquelle binden.Alternatively, you can bind the drop-down list to its own data source by setting the column DataSource property. Wenn es sich bei den Werten um Objekte in einer Auflistung oder um Datensätze in einer Datenbanktabelle DisplayMember handelt ValueMember , müssen Sie auch die Eigenschaften und festlegen.If the values are objects in a collection or records in a database table, you must also set the DisplayMember and ValueMember properties. Die DisplayMember -Eigenschaft gibt an, welche Objekt Eigenschaft oder Daten Bank Spalte die Werte bereitstellt, die in der Dropdown Liste angezeigt werden.The DisplayMember property indicates which object property or database column provides the values that are displayed in the drop-down list. Die ValueMember -Eigenschaft gibt an, welche Objekt Eigenschaft oder Daten Bank Spalte verwendet wird Value , um die Cell-Eigenschaft festzulegen.The ValueMember property indicates which object property or database column is used to set the cell Value property.

Ein typisches Szenario besteht darin, das DataGridView Steuerelement an eine übergeordnete Datenbanktabelle zu binden und die Dropdown Liste an eine zugehörige untergeordnete Tabelle zu binden.One typical scenario is to bind the DataGridView control to a parent database table and bind the drop-down list to a related child table. Beispiels DataGridView Weise können Sie das Steuerelement an eine Orders Tabelle binden, die eine ProductID Spalte enthält, und die DataSource Column-Eigenschaft Products auf eine Tabelle ProductID festlegen ProductName , die die Spalten und enthält.For example, you might bind the DataGridView control to an Orders table that contains a ProductID column and set the column DataSource property to a Products table that contains ProductID and ProductName columns. In diesem Fall würden Sie die Column DataPropertyName -Eigenschaft auf "ProductID" festlegen, um die Zellen Werte aus der Orders.ProductID Spalte aufzufüllen.In this case, you would set the column DataPropertyName property to "ProductID" to populate its cell values from the Orders.ProductID column. Wenn Sie jedoch die tatsächlichen Produktnamen in den Zellen und in der Dropdown Liste anzeigen möchten, ordnen Sie diese Werte der Products Tabelle zu, indem Sie die ValueMember -Eigenschaft auf "ProductID" DisplayMember und die-Eigenschaft auf "ProductName" festlegen.However, to display the actual product names in the cells and the drop-down list, you would map these values to the Products table by setting the ValueMember property to "ProductID" and the DisplayMember property to "ProductName".

Die Dropdown Listen Werte (oder die Werte, die durch die ValueMember -Eigenschaft angegeben werden) müssen die eigentlichen Zellwerte DataGridView enthalten, oder das Steuerelement löst eine Ausnahme aus.The drop-down list values (or the values indicated by the ValueMember property) must include the actual cell values or the DataGridView control will throw an exception.

Durch Festlegen der DataSourceSpalten DisplayMember-, ValueMember -und-Eigenschaften werden die entsprechenden Eigenschaften aller Zellen in der Spalte einschließlich CellTemplateder automatisch festgelegt.Setting the column DataSource, DisplayMember, and ValueMember properties automatically sets the corresponding properties of all cells in the column including the CellTemplate. Um diese Eigenschaftswerte für bestimmte Zellen zu überschreiben, legen Sie zuerst die Column-Eigenschaft fest, und legen Sie dann die Zell Eigenschaften fest.To override these property values for specific cells, set the column property first, and then set the cell properties.

Im Gegensatz ComboBox zum-Steuer DataGridViewComboBoxCell Element verfügt nicht SelectedIndex über SelectedValue die-und-Eigenschaften.Unlike the ComboBox control, the DataGridViewComboBoxCell does not have SelectedIndex and SelectedValue properties. Stattdessen wird durch Auswählen eines Werts aus einer Dropdown Liste die Cell Value -Eigenschaft festgelegt.Instead, selecting a value from a drop-down list sets the cell Value property.

Der Standard Sortiermodus für diesen Spaltentyp NotSortableist.The default sort mode for this column type is NotSortable.

Hinweise für Vererber

Wenn Sie von DataGridViewComboBoxColumn ableiten und der abgeleiteten Klasse neue Eigenschaften hinzufügen, stellen Sie sicher, Clone() dass Sie die-Methode überschreiben, um die neuen Eigenschaften während des Klon Vorgangs zu kopieren.When you derive from DataGridViewComboBoxColumn and add new properties to the derived class, be sure to override the Clone() method to copy the new properties during cloning operations. Sie sollten auch die- Clone() Methode der Basisklasse aufzurufen, damit die Eigenschaften der Basisklasse in die neue Zelle kopiert werden.You should also call the base class's Clone() method so that the properties of the base class are copied to the new cell.

Konstruktoren

DataGridViewComboBoxColumn()

Initialisiert eine neue Instanz der DataGridViewTextBoxColumn-Klasse im Standardzustand.Initializes a new instance of the DataGridViewTextBoxColumn class to the default state.

Eigenschaften

AutoComplete

Ruft einen Wert an, der angibt, ob Zellen in der Spalte die in die jeweilige Zelle eingegebenen Werte mit den möglichen Auswahlmöglichkeiten vergleichen, oder legt diesen fest.Gets or sets a value indicating whether cells in the column will match the characters being entered in the cell with one from the possible selections.

AutoSizeMode

Ruft den Modus ab, in dem die Spalte automatisch ihre Breite anpasst, oder legt diesen Modus fest.Gets or sets the mode by which the column automatically adjusts its width.

(Geerbt von DataGridViewColumn)
CellTemplate

Ruft die Vorlage ab, mit deren Hilfe Zellen erstellt werden, oder legt diese fest.Gets or sets the template used to create cells.

CellType

Ruft den Laufzeittyp der Zellvorlage ab.Gets the run-time type of the cell template.

(Geerbt von DataGridViewColumn)
ContextMenuStrip

Ruft das Kontextmenü für die Spalte ab oder legt dieses fest.Gets or sets the shortcut menu for the column.

(Geerbt von DataGridViewColumn)
DataGridView

Ruft das diesem Element zugeordnete DataGridView-Steuerelement ab.Gets the DataGridView control associated with this element.

(Geerbt von DataGridViewElement)
DataPropertyName

Ruft den Namen der Datenquelleneigenschaft oder Datenbankspalte ab, an die DataGridViewColumn gebunden ist, oder legt diesen Namen fest.Gets or sets the name of the data source property or database column to which the DataGridViewColumn is bound.

(Geerbt von DataGridViewColumn)
DataSource

Ruft die Datenquelle ab, die die Auswahlmöglichkeiten für die Kombinationsfelder füllt, oder legt diese fest.Gets or sets the data source that populates the selections for the combo boxes.

DefaultCellStyle

Ruft das Standardzellenformat der Spalte ab oder legt dieses fest.Gets or sets the column's default cell style.

(Geerbt von DataGridViewColumn)
DefaultHeaderCellType

Ruft den Laufzeittyp der Standardheaderzelle ab oder legt diesen fest.Gets or sets the run-time type of the default header cell.

(Geerbt von DataGridViewBand)
Displayed

Ruft einen Wert ab, der angibt, ob das Band gegenwärtig auf dem Bildschirm angezeigt wird.Gets a value indicating whether the band is currently displayed onscreen.

(Geerbt von DataGridViewBand)
DisplayIndex

Ruft die Anzeigereihenfolge der Spalte relativ zu den derzeit angezeigten Spalten ab oder legt sie fest.Gets or sets the display order of the column relative to the currently displayed columns.

(Geerbt von DataGridViewColumn)
DisplayMember

Ruft eine Zeichenfolge ab, die die Eigenschaft oder Spalte angibt, aus der die in den Kombinationsfeldern anzuzeigenden Zeichenfolgen abgerufen werden, oder legt diese fest.Gets or sets a string that specifies the property or column from which to retrieve strings for display in the combo boxes.

DisplayStyle

Ruft einen Wert ab, der bestimmt, wie das Kombinationsfeld angezeigt wird, wenn es nicht bearbeitet wird, oder legt diesen fest.Gets or sets a value that determines how the combo box is displayed when not editing.

DisplayStyleForCurrentCellOnly

Ruft einen Wert ab, der angibt, ob der DisplayStyle-Eigenschaftswert nur für die aktuelle Zelle im DataGridView-Steuerelement gilt, wenn die aktuelle Zelle sich in dieser Spalte befindet, oder legt diesen fest.Gets or sets a value indicating whether the DisplayStyle property value applies only to the current cell in the DataGridView control when the current cell is in this column.

DividerWidth

Ruft die Breite des Spaltenunterteilers in Pixel ab oder legt sie fest.Gets or sets the width, in pixels, of the column divider.

(Geerbt von DataGridViewColumn)
DropDownWidth

Ruft die Breite der Dropdownlisten der Kombinationsfelder ab oder legt diese fest.Gets or sets the width of the drop-down lists of the combo boxes.

FillWeight

Ruft einen Wert ab, der die Breite der Spalte im Füllmodus relativ zur Breite anderer im Steuerelement vorhandener Spalten im Füllmodus darstellt, oder legt diesen Wert fest.Gets or sets a value that represents the width of the column when it is in fill mode relative to the widths of other fill-mode columns in the control.

(Geerbt von DataGridViewColumn)
FlatStyle

Ruft die unformatierte Darstellung der Zellen der Spalte ab oder legt diese fest.Gets or sets the flat style appearance of the column's cells.

Frozen

Ruft einen Wert ab, der angibt, ob eine Spalte verschoben wird, wenn ein Benutzer einen horizontalen Bildlauf durch das DataGridView-Steuerelement durchführt, oder legt diesen Wert fest.Gets or sets a value indicating whether a column will move when a user scrolls the DataGridView control horizontally.

(Geerbt von DataGridViewColumn)
HasDefaultCellStyle

Ruft einen Wert ab, der angibt, ob die DefaultCellStyle-Eigenschaft festgelegt wurde.Gets a value indicating whether the DefaultCellStyle property has been set.

(Geerbt von DataGridViewBand)
HeaderCell

Ruft die DataGridViewColumnHeaderCell ab, die den Spaltenheader darstellt, oder legt sie fest.Gets or sets the DataGridViewColumnHeaderCell that represents the column header.

(Geerbt von DataGridViewColumn)
HeaderCellCore

Ruft die Headerzelle von DataGridViewBand ab oder legt diese fest.Gets or sets the header cell of the DataGridViewBand.

(Geerbt von DataGridViewBand)
HeaderText

Ruft den Beschriftungstext für die Headerzelle der Spalte ab oder legt ihn fest.Gets or sets the caption text on the column's header cell.

(Geerbt von DataGridViewColumn)
Index

Ruft die relative Position des Bands im DataGridView-Steuerelement ab.Gets the relative position of the band within the DataGridView control.

(Geerbt von DataGridViewBand)
InheritedAutoSizeMode

Ruft den für die Spalte gültigen Modus zum Festlegen der Größe ab.Gets the sizing mode in effect for the column.

(Geerbt von DataGridViewColumn)
InheritedStyle

Ruft den Zellstil ab, der gegenwärtig auf die Spalte angewendet wird.Gets the cell style currently applied to the column.

(Geerbt von DataGridViewColumn)
IsDataBound

Ruft einen Wert ab, der angibt, ob die Spalte an eine Datenquelle gebunden ist.Gets a value indicating whether the column is bound to a data source.

(Geerbt von DataGridViewColumn)
IsRow

Ruft einen Wert ab, der angibt, ob das Band eine Zeile darstellt.Gets a value indicating whether the band represents a row.

(Geerbt von DataGridViewBand)
Items

Ruft die Auflistung der Objekte ab, die als Auswahlmöglichkeiten in den Kombinationsfeldern verwendet werden.Gets the collection of objects used as selections in the combo boxes.

MaxDropDownItems

Ruft die maximale Anzahl von Elementen in der Dropdownliste der Zellen in der Spalte ab oder legt diese fest.Gets or sets the maximum number of items in the drop-down list of the cells in the column.

MinimumWidth

Ruft die minimale Breite der Spalte in Pixel ab oder legt sie fest.Gets or sets the minimum width, in pixels, of the column.

(Geerbt von DataGridViewColumn)
Name

Ruft den Namen der Spalte ab oder legt ihn fest.Gets or sets the name of the column.

(Geerbt von DataGridViewColumn)
ReadOnly

Ruft einen Wert ab, der angibt, ob der Benutzer die Zellen der Spalte bearbeiten kann, oder legt diesen Wert fest.Gets or sets a value indicating whether the user can edit the column's cells.

(Geerbt von DataGridViewColumn)
Resizable

Ruft einen Wert ab, der angibt, ob die Größe der Spalte geändert werden kann, oder legt diesen fest.Gets or sets a value indicating whether the column is resizable.

(Geerbt von DataGridViewColumn)
Selected

Ruft einen Wert ab, der angibt, ob sich das Band in einem ausgewählten Benutzeroberflächenzustand befindet, oder legt diesen Wert fest.Gets or sets a value indicating whether the band is in a selected user interface (UI) state.

(Geerbt von DataGridViewBand)
Site

Ruft die Site der Spalte ab oder legt sie fest.Gets or sets the site of the column.

(Geerbt von DataGridViewColumn)
Sorted

Ruft einen Wert ab, der angibt, ob die Elemente im Kombinationsfeld sortiert sind, oder legt diesen fest.Gets or sets a value indicating whether the items in the combo box are sorted.

SortMode

Ruft den Sortiermodus für die Spalte ab oder legt diesen fest.Gets or sets the sort mode for the column.

(Geerbt von DataGridViewColumn)
State

Ruft den Benutzeroberflächenzustand des Elements ab.Gets the user interface (UI) state of the element.

(Geerbt von DataGridViewElement)
Tag

Ruft das Objekt ab, das dem Band zuzuordnende Daten enthält, oder legt dieses fest.Gets or sets the object that contains data to associate with the band.

(Geerbt von DataGridViewBand)
ToolTipText

Ruft den für QuickInfos verwendeten Text ab oder legt diesen fest.Gets or sets the text used for ToolTips.

(Geerbt von DataGridViewColumn)
ValueMember

Ruft eine Zeichenfolge ab, die die Eigenschaft oder Spalte angibt, aus der die Werte abgerufen werden, die den Auswahlmöglichkeiten im Kombinationsfeld entsprechen, oder legt diese fest.Gets or sets a string that specifies the property or column from which to get values that correspond to the selections in the drop-down list.

ValueType

Ruft den Datentyp der Werte in den Zellen der Spalte ab oder legt ihn fest.Gets or sets the data type of the values in the column's cells.

(Geerbt von DataGridViewColumn)
Visible

Ruft einen Wert ab, der angibt, ob die Spalte sichtbar ist, oder legt diesen Wert fest.Gets or sets a value indicating whether the column is visible.

(Geerbt von DataGridViewColumn)
Width

Ruft die aktuelle Breite der Spalte ab oder legt sie fest.Gets or sets the current width of the column.

(Geerbt von DataGridViewColumn)

Methoden

Clone()

Erstellt eine genaue Kopie dieser Spalte.Creates an exact copy of this column.

Dispose()

Gibt alle vom DataGridViewBand verwendeten Ressourcen frei.Releases all resources used by the DataGridViewBand.

(Geerbt von DataGridViewBand)
Dispose(Boolean)

Gibt die von DataGridViewBand verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei.Releases the unmanaged resources used by the DataGridViewBand and optionally releases the managed resources.

(Geerbt von DataGridViewColumn)
Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Geerbt von Object)
GetPreferredWidth(DataGridViewAutoSizeColumnMode, Boolean)

Berechnet die ideale Breite der Spalte auf der Grundlage der angegebenen Kriterien.Calculates the ideal width of the column based on the specified criteria.

(Geerbt von DataGridViewColumn)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
OnDataGridViewChanged()

Wird aufgerufen, wenn das Band einer anderen DataGridView zugeordnet wird.Called when the band is associated with a different DataGridView.

(Geerbt von DataGridViewBand)
RaiseCellClick(DataGridViewCellEventArgs)

Löst das CellClick-Ereignis aus.Raises the CellClick event.

(Geerbt von DataGridViewElement)
RaiseCellContentClick(DataGridViewCellEventArgs)

Löst das CellContentClick-Ereignis aus.Raises the CellContentClick event.

(Geerbt von DataGridViewElement)
RaiseCellContentDoubleClick(DataGridViewCellEventArgs)

Löst das CellContentDoubleClick-Ereignis aus.Raises the CellContentDoubleClick event.

(Geerbt von DataGridViewElement)
RaiseCellValueChanged(DataGridViewCellEventArgs)

Löst das CellValueChanged-Ereignis aus.Raises the CellValueChanged event.

(Geerbt von DataGridViewElement)
RaiseDataError(DataGridViewDataErrorEventArgs)

Löst das DataError-Ereignis aus.Raises the DataError event.

(Geerbt von DataGridViewElement)
RaiseMouseWheel(MouseEventArgs)

Löst das MouseWheel-Ereignis aus.Raises the MouseWheel event.

(Geerbt von DataGridViewElement)
ToString()

Ruft eine Zeichenfolge ab, die die Spalte beschreibt.Gets a string that describes the column.

Ereignisse

Disposed

Tritt ein, wenn die DataGridViewColumn freigegeben ist.Occurs when the DataGridViewColumn is disposed.

(Geerbt von DataGridViewColumn)

Gilt für:

Siehe auch