Last active
January 6, 2017 23:02
-
-
Save WildGenie/f4f7ca0001b365edae23fc9fd3c9d67c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#r "System.Windows.Forms" | |
#r "System.Drawing" | |
using System.Windows.Forms; | |
using System.Drawing; | |
using System; | |
Application.Run(new Form1()); | |
public class Form1 : Form | |
{ | |
public Form1() | |
{ | |
this.Load += FormLoad; | |
this.Controls.Add(dataGridView1); | |
} | |
private void FormLoad(object sender, EventArgs e) | |
{ | |
AddColorColumn(); | |
} | |
private DataGridView dataGridView1 = new DataGridView(); | |
DataGridViewComboBoxColumn comboBoxColumn; | |
DataGridViewComboBoxColumn comboBoxDetailColumn; | |
private void AddColorColumn() | |
{ | |
comboBoxColumn = new DataGridViewComboBoxColumn(); | |
comboBoxColumn.Items.AddRange( | |
Color.Red, Color.Yellow, Color.Green, Color.Blue); | |
comboBoxColumn.ValueType = typeof(Color); | |
dataGridView1.Columns.Add(comboBoxColumn); | |
comboBoxDetailColumn = new DataGridViewComboBoxColumn(); | |
comboBoxDetailColumn.ValueType = typeof(Color); | |
dataGridView1.Columns.Add(comboBoxDetailColumn); | |
dataGridView1.CellEndEdit += dataGridView1_CellEndEdit; | |
} | |
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e) | |
{ | |
DataGridView dataGridView = sender as DataGridView; | |
DataGridViewComboBoxCell masterCell = | |
(DataGridViewComboBoxCell)dataGridView.Rows[e.RowIndex].Cells[0]; | |
DataGridViewComboBoxCell detailCell = | |
(DataGridViewComboBoxCell)dataGridView.Rows[e.RowIndex].Cells[1]; | |
if (masterCell.Value != null && e.ColumnIndex == 0) | |
{ | |
detailCell.Items.Clear(); | |
Color color = (Color)masterCell.Value; | |
var oldValue = detailCell.Value; | |
detailCell.Value = null; | |
switch (color.Name) | |
{ | |
case "Red": | |
detailCell.Items.AddRange( | |
Color.DarkRed, Color.IndianRed, Color.MediumVioletRed, Color.PaleVioletRed); | |
break; | |
case "Green": | |
detailCell.Items.AddRange( | |
Color.Green, Color.DarkGreen, Color.LightSeaGreen, Color.LawnGreen); | |
break; | |
case "Blue": | |
detailCell.Items.AddRange( | |
Color.CornflowerBlue, Color.LightBlue, Color.LightSteelBlue, Color.PowderBlue); | |
break; | |
case "Yellow": | |
detailCell.Items.AddRange( | |
Color.GreenYellow, Color.LightYellow, Color.YellowGreen, Color.LightGoldenrodYellow); | |
break; | |
} | |
if (oldValue != null && detailCell.Items.Contains(oldValue)) | |
{ | |
detailCell.Value = oldValue; | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment