Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
DataGridViewComboBoxColumn-Klasse
Stellt eine Spalte von DataGridViewComboBoxCell-Objekten dar.
System.Windows.Forms.DataGridViewElement
System.Windows.Forms.DataGridViewBand
System.Windows.Forms.DataGridViewColumn
System.Windows.Forms.DataGridViewComboBoxColumn
Assembly: System.Windows.Forms (in System.Windows.Forms.dll)
Der DataGridViewComboBoxColumn-Typ macht die folgenden Member verfügbar.
| Name | Beschreibung | |
|---|---|---|
|
DataGridViewComboBoxColumn | Initialisiert eine neue Instanz der DataGridViewTextBoxColumn-Klasse im Standardzustand. |
| Name | Beschreibung | |
|---|---|---|
|
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. |
|
AutoSizeMode | Ruft den Modus ab, in dem die Spalte automatisch ihre Breite anpasst, oder legt diesen Modus fest. (Von DataGridViewColumn geerbt.) |
|
CellTemplate | Ruft die Vorlage ab, mit deren Hilfe Zellen erstellt werden, oder legt diese fest. (Überschreibt DataGridViewColumn.CellTemplate.) |
|
CellType | Ruft den Laufzeittyp der Zellvorlage ab. (Von DataGridViewColumn geerbt.) |
|
ContextMenuStrip | Ruft das Kontextmenü für die Spalte ab oder legt dieses fest. (Von DataGridViewColumn geerbt.) |
|
DataGridView | Ruft das diesem Element zugeordnete DataGridView-Steuerelement ab. (Von DataGridViewElement geerbt.) |
|
DataPropertyName | Ruft den Namen der Datenquelleneigenschaft oder Datenbankspalte ab, an die DataGridViewColumn gebunden ist, oder legt diesen Namen fest. (Von DataGridViewColumn geerbt.) |
|
DataSource | Ruft die Datenquelle ab, die die Auswahlmöglichkeiten für die Kombinationsfelder füllt, oder legt diese fest. |
|
DefaultCellStyle | Ruft das Standardzellenformat der Spalte ab oder legt dieses fest. (Von DataGridViewColumn geerbt.) |
|
DefaultHeaderCellType | Ruft den Laufzeittyp der Standardheaderzelle ab oder legt diesen fest. (Von DataGridViewBand geerbt.) |
|
Displayed | Ruft einen Wert ab, der angibt, ob das Band gegenwärtig auf dem Bildschirm angezeigt wird. (Von DataGridViewBand geerbt.) |
|
DisplayIndex | Ruft die Anzeigereihenfolge der Spalte relativ zu den derzeit angezeigten Spalten ab oder legt sie fest. (Von DataGridViewColumn geerbt.) |
|
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. |
|
DisplayStyle | Ruft einen Wert ab, der bestimmt, wie das Kombinationsfeld angezeigt wird, wenn es nicht bearbeitet wird, oder legt diesen fest. |
|
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. |
|
DividerWidth | Ruft die Breite des Spaltenunterteilers in Pixel ab oder legt sie fest. (Von DataGridViewColumn geerbt.) |
|
DropDownWidth | Ruft die Breite der Dropdownlisten der Kombinationsfelder ab oder legt diese fest. |
|
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. (Von DataGridViewColumn geerbt.) |
|
FlatStyle | Ruft die unformatierte Darstellung der Zellen der Spalte ab oder legt diese fest. |
|
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. (Von DataGridViewColumn geerbt.) |
|
HasDefaultCellStyle | Ruft einen Wert ab, der angibt, ob die DefaultCellStyle-Eigenschaft festgelegt wurde. (Von DataGridViewBand geerbt.) |
|
HeaderCell | Ruft die DataGridViewColumnHeaderCell ab, die den Spaltenheader darstellt, oder legt sie fest. (Von DataGridViewColumn geerbt.) |
|
HeaderCellCore | Ruft die Headerzelle von DataGridViewBand ab oder legt diese fest. (Von DataGridViewBand geerbt.) |
|
HeaderText | Ruft den Beschriftungstext für die Headerzelle der Spalte ab oder legt ihn fest. (Von DataGridViewColumn geerbt.) |
|
Index | Ruft die relative Position des Bands im DataGridView-Steuerelement ab. (Von DataGridViewBand geerbt.) |
|
InheritedAutoSizeMode | Ruft den für die Spalte gültigen Modus zum Festlegen der Größe ab. (Von DataGridViewColumn geerbt.) |
|
InheritedStyle | Ruft den Zellstil ab, der gegenwärtig auf die Spalte angewendet wird. (Von DataGridViewColumn geerbt.) |
|
IsDataBound | Ruft einen Wert ab, der angibt, ob die Spalte an eine Datenquelle gebunden ist. (Von DataGridViewColumn geerbt.) |
|
IsRow | Ruft einen Wert ab, der angibt, ob das Band eine Zeile darstellt. (Von DataGridViewBand geerbt.) |
|
Items | Ruft die Auflistung der Objekte ab, die als Auswahlmöglichkeiten in den Kombinationsfeldern verwendet werden. |
|
MaxDropDownItems | Ruft die maximale Anzahl von Elementen in der Dropdownliste der Zellen in der Spalte ab oder legt diese fest. |
|
MinimumWidth | Ruft die minimale Breite der Spalte in Pixel ab oder legt sie fest. (Von DataGridViewColumn geerbt.) |
|
Name | Ruft den Namen der Spalte ab oder legt ihn fest. (Von DataGridViewColumn geerbt.) |
|
ReadOnly | Ruft einen Wert ab, der angibt, ob der Benutzer die Zellen der Spalte bearbeiten kann, oder legt diesen Wert fest. (Von DataGridViewColumn geerbt.) |
|
Resizable | Ruft einen Wert ab, der angibt, ob die Größe der Spalte geändert werden kann, oder legt diesen fest. (Von DataGridViewColumn geerbt.) |
|
Selected | Ruft einen Wert ab, der angibt, ob sich das Band in einem ausgewählten Benutzeroberflächenzustand befindet, oder legt diesen Wert fest. (Von DataGridViewBand geerbt.) |
|
Site | Infrastruktur. Ruft die Site der Spalte ab oder legt sie fest. (Von DataGridViewColumn geerbt.) |
|
Sorted | Ruft einen Wert ab, der angibt, ob die Elemente im Kombinationsfeld sortiert sind, oder legt diesen fest. |
|
SortMode | Ruft den Sortiermodus für die Spalte ab oder legt diesen fest. (Von DataGridViewColumn geerbt.) |
|
State | Ruft den Benutzeroberflächenzustand des Elements ab. (Von DataGridViewElement geerbt.) |
|
Tag | Ruft das Objekt ab, das dem Band zuzuordnende Daten enthält, oder legt dieses fest. (Von DataGridViewBand geerbt.) |
|
ToolTipText | Ruft den für QuickInfos verwendeten Text ab oder legt diesen fest. (Von DataGridViewColumn geerbt.) |
|
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. |
|
ValueType | Ruft den Datentyp der Werte in den Zellen der Spalte ab oder legt ihn fest. (Von DataGridViewColumn geerbt.) |
|
Visible | Ruft einen Wert ab, der angibt, ob die Spalte sichtbar ist, oder legt diesen Wert fest. (Von DataGridViewColumn geerbt.) |
|
Width | Ruft die aktuelle Breite der Spalte ab oder legt sie fest. (Von DataGridViewColumn geerbt.) |
| Name | Beschreibung | |
|---|---|---|
|
Clone | Erstellt eine genaue Kopie dieser Spalte. (Überschreibt DataGridViewColumn.Clone().) |
|
Dispose() | Gibt sämtliche von DataGridViewBand verwendeten Ressourcen frei. (Von DataGridViewBand geerbt.) |
|
Dispose(Boolean) | Gibt die vom DataGridViewBand verwendeten nicht verwalteten Ressourcen und optional auch die verwalteten Ressourcen frei. (Von DataGridViewColumn geerbt.) |
|
Equals(Object) | Bestimmt, ob das angegebene Object und das aktuelle Object gleich sind. (Von Object geerbt.) |
|
Finalize | Gibt die dem Band zugeordneten Ressourcen frei. (Von DataGridViewBand geerbt.) |
|
GetHashCode | Fungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.) |
|
GetPreferredWidth | Berechnet die ideale Breite der Spalte auf der Grundlage der angegebenen Kriterien. (Von DataGridViewColumn geerbt.) |
|
GetType | Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.) |
|
MemberwiseClone | Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.) |
|
OnDataGridViewChanged | Wird aufgerufen, wenn das Band einer anderen DataGridView zugeordnet wird. (Von DataGridViewBand geerbt.) |
|
RaiseCellClick | Löst das DataGridView.CellClick-Ereignis aus. (Von DataGridViewElement geerbt.) |
|
RaiseCellContentClick | Löst das DataGridView.CellContentClick-Ereignis aus. (Von DataGridViewElement geerbt.) |
|
RaiseCellContentDoubleClick | Löst das DataGridView.CellContentDoubleClick-Ereignis aus. (Von DataGridViewElement geerbt.) |
|
RaiseCellValueChanged | Löst das DataGridView.CellValueChanged-Ereignis aus. (Von DataGridViewElement geerbt.) |
|
RaiseDataError | Löst das DataGridView.DataError-Ereignis aus. (Von DataGridViewElement geerbt.) |
|
RaiseMouseWheel | Löst das Control.MouseWheel-Ereignis aus. (Von DataGridViewElement geerbt.) |
|
ToString | Ruft eine Zeichenfolge ab, die die Spalte beschreibt. (Überschreibt DataGridViewColumn.ToString().) |
| Name | Beschreibung | |
|---|---|---|
|
Disposed | Tritt ein, wenn die DataGridViewColumn freigegeben ist. (Von DataGridViewColumn geerbt.) |
Die DataGridViewComboBoxColumn-Klasse ist ein spezieller Typ von DataGridViewColumn zum logischen Hosten von Zellen, mit denen Werte aus einer Liste ausgewählt werden können. Eine DataGridViewComboBoxColumn verfügt in jeder DataGridViewRow, die diese überschneidet, über eine zugeordnete DataGridViewComboBoxCell.
Sie können die Zellen manuell auffüllen, indem Sie ihre Value-Eigenschaften festlegen. Sie können auch die Spalte an die Datenquelle binden, die von der DataGridView.DataSource-Eigenschaft angegeben wird. Wenn die DataGridView an eine Datenbanktabelle gebunden ist, legen Sie die DataPropertyName-Eigenschaft der Spalte auf den Namen einer Tabellenspalte fest. Wenn die DataGridView an eine Auflistung von Objekten gebunden ist, legen Sie die DataPropertyName-Eigenschaft auf den Namen einer Objekteigenschaft fest.
Sie können die Dropdownliste der Spalte manuell auffüllen, indem Sie der Items-Auflistung Werte hinzufügen. Sie können aber auch die Dropdownliste an ihre eigene Datenquelle binden, indem Sie die DataSource-Eigenschaft der Spalte festlegen. Wenn es sich bei den Werten um Objekte einer Auflistung oder Datensätze in einer Datenbanktabelle handelt, müssen Sie außerdem die DisplayMember-Eigenschaft und die ValueMember-Eigenschaft festlegen. Die DisplayMember-Eigenschaft gibt an, welche Objekteigenschaft oder Datenbankspalte die Werte enthält, die in der Dropdownliste angezeigt werden. Die ValueMember-Eigenschaft gibt an, mit welcher Objekteigenschaft oder Datenbankspalte die Value-Eigenschaft der Zelle festgelegt wird.
In einem typischen Szenario wird das DataGridView-Steuerelement an eine übergeordnete Datenbanktabelle und die Dropdownliste an eine verknüpfte untergeordnete Tabelle gebunden. Beispielsweise können Sie das DataGridView-Steuerelement an eine Orders-Tabelle mit einer ProductID-Spalte binden und die DataSource-Eigenschaft der Spalte auf eine Products-Tabelle mit einer ProductID-Spalte und einer ProductName-Spalte festlegen. In diesem Fall legen Sie die DataPropertyName-Eigenschaft der Spalte auf "ProductID" fest, um die Zellwerte anhand der Orders.ProductID-Spalte aufzufüllen. Wenn Sie jedoch in den Zellen und in der Dropdownliste die tatsächlichen Produktnamen anzeigen möchten, müssen Sie der Products-Tabelle die entsprechenden Werte zuordnen, indem Sie die ValueMember-Eigenschaft auf "ProductID" und die DisplayMember-Eigenschaft auf "ProductName" festlegen.
Die Werte der Dropdownliste (oder die durch die ValueMember-Eigenschaft angegebenen Werte) müssen die tatsächlichen Zellwerte enthalten, da das DataGridView-Steuerelement andernfalls eine Ausnahme auslöst.
Durch das Festlegen der Eigenschaften DataSource, DisplayMember und ValueMember der Spalte werden die entsprechenden Eigenschaften für alle Zellen der Spalte und auch für CellTemplate automatisch festgelegt. Wenn Sie diese Eigenschaftswerte für bestimmte Zellen überschreiben möchten, müssen Sie zuerst die Spalteneigenschaft und dann die Zelleigenschaften festlegen.
Im Gegensatz zum ComboBox-Steuerelement verfügt die DataGridViewComboBoxCell nicht über die SelectedIndex-Eigenschaft und die SelectedValue-Eigenschaft. Stattdessen wird durch das Auswählen eines Werts in einer Dropdownliste die Value-Eigenschaft der Zelle festgelegt.
Der Standardsortiermodus für diesen Spaltentyp ist NotSortable.
Hinweise zur Vererbung
Wenn Sie aus DataGridViewComboBoxColumn ableiten und der abgeleiteten Klasse neue Eigenschaften hinzufügen, müssen Sie die Clone-Methode überschreiben, damit die neuen Eigenschaften während der Klonvorgänge kopiert werden. Sie sollten auch die Clone-Methode der Basisklasse aufrufen, sodass die Eigenschaften der Basisklasse in die neue Zelle kopiert werden.
Im folgenden Codebeispiel wird veranschaulicht, wie eine DataGridViewComboBoxColumn verwendet wird, die die Dateneingabe in die Spalte TitleOfCourtesy vereinfacht.
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 }
Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.