Example #1
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="formatString">数值格式</param>
        /// <param name="canEdit">是否可编辑</param>
        public MyDoubleCell(string formatString, bool canEdit)
            : base()
        {
            SourceGrid.Cells.Views.Cell myview = new SourceGrid.Cells.Views.Cell();
            myview.BackColor     = Color.White;                                  //背景色
            myview.Font          = new Font("Times New Roman", 10);
            myview.ForeColor     = Color.Black;                                  //字体颜色
            myview.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleCenter; //居中

            this.View = myview;

            //编辑器
            SourceGrid.Cells.Editors.TextBoxNumeric numericEditor = new SourceGrid.Cells.Editors.TextBoxNumeric(typeof(double));
            //按键判断,是否为数字或者小数点
            numericEditor.KeyPress += delegate(object sender, KeyPressEventArgs keyArgs)
            {
                bool isValid = char.IsNumber(keyArgs.KeyChar) || keyArgs.KeyChar == (char)Keys.Back ||
                               (keyArgs.KeyChar == System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator[0] && numericEditor.GetEditedValue().ToString().IndexOf(".") == -1);
                keyArgs.Handled = !isValid;
            };
            //格式化数值
            DevAge.ComponentModel.Converter.NumberTypeConverter numberFormatCustom = new DevAge.ComponentModel.Converter.NumberTypeConverter(typeof(double));
            numberFormatCustom.Format   = formatString;
            numericEditor.TypeConverter = numberFormatCustom;

            //是否可编辑
            numericEditor.EnableEdit = canEdit;
            this.Editor = numericEditor;
        }
Example #2
0
        private void CreateColumns(SourceGrid.DataGridColumns columns,
                                   DevAge.ComponentModel.IBoundList bindList)
        {
            SourceGrid.Cells.Editors.TextBoxNumeric numericEditor = new SourceGrid.Cells.Editors.TextBoxNumeric(typeof(decimal));
            numericEditor.TypeConverter = new DevAge.ComponentModel.Converter.NumberTypeConverter(typeof(decimal), "N");
            numericEditor.AllowNull     = true;

            //Borders
            DevAge.Drawing.RectangleBorder border = new DevAge.Drawing.RectangleBorder(new DevAge.Drawing.BorderLine(Color.ForestGreen), new DevAge.Drawing.BorderLine(Color.ForestGreen));

            //Standard Views
            SourceGrid.Cells.Views.Link viewLink = new SourceGrid.Cells.Views.Link();
            viewLink.BackColor      = Color.DarkSeaGreen;
            viewLink.Border         = border;
            viewLink.ImageAlignment = DevAge.Drawing.ContentAlignment.MiddleCenter;
            viewLink.TextAlignment  = DevAge.Drawing.ContentAlignment.MiddleCenter;
            SourceGrid.Cells.Views.Cell viewString = new SourceGrid.Cells.Views.Cell();
            viewString.BackColor     = Color.DarkSeaGreen;
            viewString.Border        = border;
            viewString.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleLeft;
            SourceGrid.Cells.Views.Cell viewNumeric = new SourceGrid.Cells.Views.Cell();
            viewNumeric.BackColor     = Color.DarkSeaGreen;
            viewNumeric.Border        = border;
            viewNumeric.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleRight;
            SourceGrid.Cells.Views.Cell viewImage = new SourceGrid.Cells.Views.Cell();
            viewImage.BackColor      = Color.DarkSeaGreen;
            viewImage.Border         = border;
            viewImage.ImageStretch   = false;
            viewImage.ImageAlignment = DevAge.Drawing.ContentAlignment.MiddleCenter;

            //Create columns
            SourceGrid.DataGridColumn gridColumn;

            gridColumn = dataGrid.Columns.Add(null, "", new SourceGrid.Cells.Link());
            gridColumn.DataCell.AddController(new LinkClickDelete());
            gridColumn.DataCell.View = viewLink;
            ((SourceGrid.Cells.Link)gridColumn.DataCell).Image = Properties.Resources.trash.ToBitmap();

            gridColumn = dataGrid.Columns.Add("Flag", "Flag", new SourceGrid.Cells.DataGrid.Image());
            gridColumn.DataCell.View = viewImage;

            gridColumn = dataGrid.Columns.Add("Country", "Country", typeof(string));
            gridColumn.DataCell.View = viewString;

            gridColumn = dataGrid.Columns.Add("Uniform", "Uniform", new SourceGrid.Cells.DataGrid.Image());
            gridColumn.DataCell.View = viewImage;

            gridColumn = dataGrid.Columns.Add("Capital", "Capital", typeof(string));
            gridColumn.DataCell.View = viewString;

            gridColumn = dataGrid.Columns.Add("Population", "Population", typeof(decimal));
            gridColumn.DataCell.Editor = numericEditor;
            gridColumn.DataCell.View   = viewNumeric;

            gridColumn = dataGrid.Columns.Add("Surface", "Surface", typeof(decimal));
            gridColumn.DataCell.Editor = numericEditor;
            gridColumn.DataCell.View   = viewNumeric;

            gridColumn = dataGrid.Columns.Add("Languages", "Languages", typeof(string));
            gridColumn.DataCell.View = viewString;

            gridColumn = dataGrid.Columns.Add("Currency", "Currency", typeof(string));
            gridColumn.DataCell.View = viewString;

            gridColumn = dataGrid.Columns.Add("Major Cities", "Major Cities", typeof(string));
            gridColumn.DataCell.View = viewString;

            gridColumn = dataGrid.Columns.Add("National Holiday", "National Holiday", typeof(string));
            gridColumn.DataCell.View = viewString;

            gridColumn = dataGrid.Columns.Add("Lowest point", "Lowest point", typeof(string));
            gridColumn.DataCell.View = viewString;

            gridColumn = dataGrid.Columns.Add("Highest point", "Highest point", typeof(string));
            gridColumn.DataCell.View = viewString;

            //Create a conditional view
            foreach (SourceGrid.DataGridColumn col in columns)
            {
                SourceGrid.Conditions.ICondition condition =
                    SourceGrid.Conditions.ConditionBuilder.AlternateView(col.DataCell.View,
                                                                         Color.LightGray, Color.Black);
                col.Conditions.Add(condition);
            }
        }
        private void CreateColumns(DevAge.ComponentModel.IBoundList boundList)
		{
            //Create the editors
			SourceGrid.Cells.Editors.TextBoxNumeric numericEditor = new SourceGrid.Cells.Editors.TextBoxNumeric(typeof(decimal));
			numericEditor.TypeConverter = new DevAge.ComponentModel.Converter.NumberTypeConverter(typeof(decimal), "N");
			numericEditor.AllowNull = true;  //the database value can be null (System.DbNull)

			SourceGrid.Cells.Editors.ComboBox externalIdEditor = new SourceGrid.Cells.Editors.ComboBox(typeof(int));
			externalIdEditor.StandardValues = new int[]{1, 2, 3, 4};
			externalIdEditor.StandardValuesExclusive = true;
            externalIdEditor.Control.FormattingEnabled = true;

			DevAge.ComponentModel.Validator.ValueMapping mapping = new DevAge.ComponentModel.Validator.ValueMapping();
			mapping.ValueList = new int[]{1, 2, 3, 4};
            mapping.DisplayStringList = new string[] { "Reference 1", "Reference 2", "Reference 3", "Reference 4" };
			mapping.BindValidator(externalIdEditor);


            //Create the views
            SourceGrid.Cells.Views.Cell viewSelected = new SourceGrid.Cells.Views.Cell();
            viewSelected.Font = new Font(dataGrid.Font, FontStyle.Bold);
            viewSelected.ForeColor = Color.DarkGreen;

            //Create selected conditions
            SourceGrid.Conditions.ConditionView selectedConditionBold = new SourceGrid.Conditions.ConditionView(viewSelected);
            selectedConditionBold.EvaluateFunction = delegate(SourceGrid.DataGridColumn column, int gridRow, object itemRow)
                                                    {
                                                        DataRowView row = (DataRowView)itemRow;
                                                        return row["Selected"] is bool && (bool)row["Selected"] == true;
                                                    };
            SourceGrid.Conditions.ConditionCell selectedConditionStar = new SourceGrid.Conditions.ConditionCell(new SourceGrid.Cells.Virtual.CellVirtual());
            selectedConditionStar.Cell.Model.AddModel(new SourceGrid.Cells.Models.Image(Properties.Resources.Star.ToBitmap()));
            selectedConditionStar.EvaluateFunction = delegate(SourceGrid.DataGridColumn column, int gridRow, object itemRow)
                                                    {
                                                        DataRowView row = (DataRowView)itemRow;
                                                        return row["Selected"] is bool && (bool)row["Selected"] == true;
                                                    };

			//Create columns
            SourceGrid.DataGridColumn gridColumn;

            gridColumn = dataGrid.Columns.Add("Selected", "Selected", typeof(bool));

            gridColumn = dataGrid.Columns.Add("Country", "Country", typeof(string));
            gridColumn.DataCell.Model.AddModel(new BoundImage("Uniform"));
            gridColumn.Conditions.Add(selectedConditionBold);

            gridColumn = dataGrid.Columns.Add("Uniform", "Uniform", new SourceGrid.Cells.DataGrid.Image());
            gridColumn.Conditions.Add(selectedConditionBold);

            gridColumn = dataGrid.Columns.Add("Population", "Population", numericEditor);
            gridColumn.Conditions.Add(selectedConditionBold);

            gridColumn = dataGrid.Columns.Add("Surface", "Surface", numericEditor);
            gridColumn.Conditions.Add(selectedConditionBold);

            gridColumn = dataGrid.Columns.Add("ExternalID", "ExternalID", externalIdEditor);
            gridColumn.Conditions.Add(selectedConditionBold);

            gridColumn = dataGrid.Columns.Add("Star", "Star", new SourceGrid.Cells.Virtual.CellVirtual());
            gridColumn.DataCell.Model.AddModel(new SourceGrid.Cells.Models.Image(Properties.Resources.StarOff));
            gridColumn.Conditions.Add(selectedConditionStar);

            foreach (SourceGrid.DataGridColumn col in dataGrid.Columns)
            {
                col.DataCell.AddController(SourceGrid.Cells.Controllers.ToolTipText.Default);
                col.DataCell.Model.AddModel(MyToolTipModel.Default);
            }
		}
Example #4
0
        private void CreateColumns(DevAge.ComponentModel.IBoundList boundList)
        {
            //Create the editors
            SourceGrid.Cells.Editors.TextBoxNumeric numericEditor = new SourceGrid.Cells.Editors.TextBoxNumeric(typeof(decimal));
            numericEditor.TypeConverter = new DevAge.ComponentModel.Converter.NumberTypeConverter(typeof(decimal), "N");
            numericEditor.AllowNull     = true;          //the database value can be null (System.DbNull)

            SourceGrid.Cells.Editors.ComboBox externalIdEditor = new SourceGrid.Cells.Editors.ComboBox(typeof(int));
            externalIdEditor.StandardValues            = new int[] { 1, 2, 3, 4 };
            externalIdEditor.StandardValuesExclusive   = true;
            externalIdEditor.Control.FormattingEnabled = true;

            DevAge.ComponentModel.Validator.ValueMapping mapping = new DevAge.ComponentModel.Validator.ValueMapping();
            mapping.ValueList         = new int[] { 1, 2, 3, 4 };
            mapping.DisplayStringList = new string[] { "Reference 1", "Reference 2", "Reference 3", "Reference 4" };
            mapping.BindValidator(externalIdEditor);


            //Create the views
            SourceGrid.Cells.Views.Cell viewSelected = new SourceGrid.Cells.Views.Cell();
            viewSelected.Font      = new Font(dataGrid.Font, FontStyle.Bold);
            viewSelected.ForeColor = Color.DarkGreen;

            //Create selected conditions
            SourceGrid.Conditions.ConditionView selectedConditionBold = new SourceGrid.Conditions.ConditionView(viewSelected);
            selectedConditionBold.EvaluateFunction = delegate(SourceGrid.DataGridColumn column, int gridRow, object itemRow)
            {
                DataRowView row = (DataRowView)itemRow;
                return(row["Selected"] is bool && (bool)row["Selected"] == true);
            };
            SourceGrid.Conditions.ConditionCell selectedConditionStar = new SourceGrid.Conditions.ConditionCell(new SourceGrid.Cells.Virtual.CellVirtual());
            selectedConditionStar.Cell.Model.AddModel(new SourceGrid.Cells.Models.Image(Properties.Resources.Star.ToBitmap()));
            selectedConditionStar.EvaluateFunction = delegate(SourceGrid.DataGridColumn column, int gridRow, object itemRow)
            {
                DataRowView row = (DataRowView)itemRow;
                return(row["Selected"] is bool && (bool)row["Selected"] == true);
            };

            //Create columns
            SourceGrid.DataGridColumn gridColumn;

            gridColumn = dataGrid.Columns.Add("Selected", "Selected", typeof(bool));

            gridColumn = dataGrid.Columns.Add("Country", "Country", typeof(string));
            gridColumn.DataCell.Model.AddModel(new BoundImage("Uniform"));
            gridColumn.Conditions.Add(selectedConditionBold);

            gridColumn = dataGrid.Columns.Add("Uniform", "Uniform", new SourceGrid.Cells.DataGrid.Image());
            gridColumn.Conditions.Add(selectedConditionBold);

            gridColumn = dataGrid.Columns.Add("Population", "Population", numericEditor);
            gridColumn.Conditions.Add(selectedConditionBold);

            gridColumn = dataGrid.Columns.Add("Surface", "Surface", numericEditor);
            gridColumn.Conditions.Add(selectedConditionBold);

            gridColumn = dataGrid.Columns.Add("ExternalID", "ExternalID", externalIdEditor);
            gridColumn.Conditions.Add(selectedConditionBold);

            gridColumn = dataGrid.Columns.Add("Star", "Star", new SourceGrid.Cells.Virtual.CellVirtual());
            gridColumn.DataCell.Model.AddModel(new SourceGrid.Cells.Models.Image(Properties.Resources.StarOff));
            gridColumn.Conditions.Add(selectedConditionStar);

            foreach (SourceGrid.DataGridColumn col in dataGrid.Columns)
            {
                col.DataCell.AddController(SourceGrid.Cells.Controllers.ToolTipText.Default);
                col.DataCell.Model.AddModel(MyToolTipModel.Default);
            }
        }
Example #5
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            grid.Redim(62, 3);

            SourceGrid.Cells.Views.Cell titleModel = new SourceGrid.Cells.Views.Cell();
            titleModel.BackColor     = Color.SteelBlue;
            titleModel.ForeColor     = Color.White;
            titleModel.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleCenter;
            SourceGrid.Cells.Views.Cell captionModel = new SourceGrid.Cells.Views.Cell();
            captionModel.BackColor = grid.BackColor;

            int currentRow = 0;

            #region Base Types
            grid[currentRow, 0]            = new SourceGrid.Cells.Cell("Base Types");
            grid[currentRow, 0].View       = titleModel;
            grid[currentRow, 0].ColumnSpan = 3;
            currentRow++;

            //string
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("String");
            grid[currentRow, 0].View = captionModel;
            grid[currentRow, 1]      = new SourceGrid.Cells.Cell("String Value", typeof(string));

            currentRow++;

            //double
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Double");
            grid[currentRow, 0].View = captionModel;
            grid[currentRow, 1]      = new SourceGrid.Cells.Cell(1.5, typeof(double));

            currentRow++;

            //int
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Int");
            grid[currentRow, 0].View = captionModel;
            grid[currentRow, 1]      = new SourceGrid.Cells.Cell(5, typeof(int));

            currentRow++;

            //DateTime
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("DateTime");
            grid[currentRow, 0].View = captionModel;
            grid[currentRow, 1]      = new SourceGrid.Cells.Cell(DateTime.Now, typeof(DateTime));

            currentRow++;

            //Boolean
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Boolean");
            grid[currentRow, 0].View = captionModel;
            grid[currentRow, 1]      = new SourceGrid.Cells.Cell(true, typeof(Boolean));

            currentRow++;
            #endregion

            #region Complex Types
            grid[currentRow, 0]            = new SourceGrid.Cells.Cell("Complex Types");
            grid[currentRow, 0].View       = titleModel;
            grid[currentRow, 0].ColumnSpan = 3;
            currentRow++;

            //Font
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Font");
            grid[currentRow, 0].View = captionModel;
            grid[currentRow, 1]      = new SourceGrid.Cells.Cell(this.Font, typeof(Font));

            currentRow++;

            //Cursor
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Cursor");
            grid[currentRow, 0].View = captionModel;
            grid[currentRow, 1]      = new SourceGrid.Cells.Cell(Cursors.Arrow, typeof(Cursor));

            currentRow++;

            //Point
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Point");
            grid[currentRow, 0].View = captionModel;
            grid[currentRow, 1]      = new SourceGrid.Cells.Cell(new Point(2, 3), typeof(Point));

            currentRow++;

            //Rectangle
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Rectangle");
            grid[currentRow, 0].View = captionModel;
            grid[currentRow, 1]      = new SourceGrid.Cells.Cell(new Rectangle(100, 100, 200, 200), typeof(Rectangle));

            currentRow++;

            //Image
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Image");
            grid[currentRow, 0].View = captionModel;
            grid[currentRow, 1]      = new SourceGrid.Cells.Image(Properties.Resources.CalcioSmall);

            currentRow++;

            //Enum AnchorStyle
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("AnchorStyle");
            grid[currentRow, 0].View = captionModel;
            grid[currentRow, 1]      = new SourceGrid.Cells.Cell(AnchorStyles.Bottom, typeof(AnchorStyles));

            currentRow++;

            //Enum
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Enum");
            grid[currentRow, 0].View = captionModel;
            grid[currentRow, 1]      = new SourceGrid.Cells.Cell(System.Windows.Forms.BorderStyle.Fixed3D, typeof(System.Windows.Forms.BorderStyle));

            currentRow++;

            //String[]
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("String Array");
            grid[currentRow, 0].View = captionModel;
            string[] strArray = new string[] { "Value 1", "Value 2" };
            grid[currentRow, 1] = new SourceGrid.Cells.Cell(strArray, typeof(string[]));

            currentRow++;

            //Double[]
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Double Array");
            grid[currentRow, 0].View = captionModel;
            double[] dblArray = new double[] { 1, 0.5, 0.1 };
            grid[currentRow, 1] = new SourceGrid.Cells.Cell(dblArray, typeof(double[]));

            currentRow++;
            #endregion

            #region Special Editors
            grid[currentRow, 0]            = new SourceGrid.Cells.Cell("Special Editors");
            grid[currentRow, 0].View       = titleModel;
            grid[currentRow, 0].ColumnSpan = 3;
            currentRow++;

            //Time
            grid[currentRow, 0]        = new SourceGrid.Cells.Cell("Time");
            grid[currentRow, 0].View   = captionModel;
            grid[currentRow, 1]        = new SourceGrid.Cells.Cell(DateTime.Now);
            grid[currentRow, 1].Editor = new SourceGrid.Cells.Editors.TimePicker();

            currentRow++;

            //Double Chars Validation
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Double Chars Validation");
            grid[currentRow, 0].View = captionModel;
            SourceGrid.Cells.Editors.TextBoxNumeric numericEditor = new SourceGrid.Cells.Editors.TextBoxNumeric(typeof(double));
            numericEditor.KeyPress += delegate(object sender, KeyPressEventArgs keyArgs)
            {
                bool isValid = char.IsNumber(keyArgs.KeyChar) ||
                               keyArgs.KeyChar == System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator[0];

                keyArgs.Handled = !isValid;
            };
            grid[currentRow, 1]        = new SourceGrid.Cells.Cell(0.5);
            grid[currentRow, 1].Editor = numericEditor;

            currentRow++;

            //String Chars (ABC)
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Chars Validation(only ABC)");
            grid[currentRow, 0].View = captionModel;
            SourceGrid.Cells.Editors.TextBox stringEditor = new SourceGrid.Cells.Editors.TextBox(typeof(string));
            stringEditor.KeyPress += delegate(object sender, KeyPressEventArgs keyArgs)
            {
                keyArgs.KeyChar = char.ToUpper(keyArgs.KeyChar);
                bool isValid = keyArgs.KeyChar == 'A' || keyArgs.KeyChar == 'B' || keyArgs.KeyChar == 'C';

                keyArgs.Handled = !isValid;
            };
            grid[currentRow, 1]        = new SourceGrid.Cells.Cell("AABB");
            grid[currentRow, 1].Editor = stringEditor;

            currentRow++;

            //String Validating
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("String validating(min 6 chars)");
            grid[currentRow, 0].View = captionModel;
            SourceGrid.Cells.Editors.TextBox stringEditorValidating = new SourceGrid.Cells.Editors.TextBox(typeof(string));
            stringEditorValidating.Control.Validating += delegate(object sender, CancelEventArgs cancelEvent)
            {
                string val = ((TextBox)sender).Text;
                if (val == null || val.Length < 6)
                {
                    cancelEvent.Cancel = true;
                }
            };
            grid[currentRow, 1]        = new SourceGrid.Cells.Cell("test string");
            grid[currentRow, 1].Editor = stringEditorValidating;

            currentRow++;

            //Int 0-100 or null
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Int 0-100 or null");
            grid[currentRow, 0].View = captionModel;
            SourceGrid.Cells.Editors.TextBoxNumeric numericEditor0_100 = new SourceGrid.Cells.Editors.TextBoxNumeric(typeof(int));
            numericEditor0_100.MinimumValue = 0;
            numericEditor0_100.MaximumValue = 100;
            numericEditor0_100.AllowNull    = true;
            grid[currentRow, 1]             = new SourceGrid.Cells.Cell(7);
            grid[currentRow, 1].Editor      = numericEditor0_100;

            currentRow++;

            //Double Custom Conversion
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Dbl custom conversion");
            grid[currentRow, 0].View = captionModel;
            SourceGrid.Cells.Editors.TextBox dblCustomConversion = new SourceGrid.Cells.Editors.TextBox(typeof(double));
            dblCustomConversion.ConvertingObjectToValue += delegate(object sender,
                                                                    DevAge.ComponentModel.ConvertingObjectEventArgs conv)
            {
                if (conv.Value is string)
                {
                    //Here you can add any custom code
                    double val;
                    if (double.TryParse((string)conv.Value, out val))
                    {
                        conv.Value            = val;
                        conv.ConvertingStatus = DevAge.ComponentModel.ConvertingStatus.Completed;
                    }
                }
            };
            grid[currentRow, 1]        = new SourceGrid.Cells.Cell(73.839);
            grid[currentRow, 1].Editor = dblCustomConversion;

            currentRow++;

            //Enum Custom Display
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Enum Custom Display");
            grid[currentRow, 0].View = captionModel;
            SourceGrid.Cells.Editors.ComboBox keysCombo = new SourceGrid.Cells.Editors.ComboBox(typeof(Keys));
            keysCombo.Control.FormattingEnabled       = true;
            keysCombo.ConvertingValueToDisplayString += delegate(object sender, DevAge.ComponentModel.ConvertingObjectEventArgs convArgs)
            {
                if (convArgs.Value is Keys)
                {
                    convArgs.Value = (int)((Keys)convArgs.Value) + " - " + convArgs.Value.ToString();
                }
            };
            grid[currentRow, 1]        = new SourceGrid.Cells.Cell(Keys.Enter);
            grid[currentRow, 1].Editor = keysCombo;

            currentRow++;

            string[] arraySample = new string[] { "Value 1", "Value 2", "Value 3" };
            //ComboBox 1
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("ComboBox String");
            grid[currentRow, 0].View = captionModel;
            SourceGrid.Cells.Editors.ComboBox comboStandard = new SourceGrid.Cells.Editors.ComboBox(typeof(string), arraySample, false);
            comboStandard.Control.MaxLength = 10;
            grid[currentRow, 1]             = new SourceGrid.Cells.Cell(arraySample[0], comboStandard);

            currentRow++;

            //ComboBox exclusive
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("ComboBox String Exclusive");
            grid[currentRow, 0].View = captionModel;
            SourceGrid.Cells.Editors.ComboBox comboExclusive = new SourceGrid.Cells.Editors.ComboBox(typeof(string), arraySample, true);
            grid[currentRow, 1] = new SourceGrid.Cells.Cell(arraySample[0], comboExclusive);

            currentRow++;

            //ComboBox AutoComplete
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("ComboBox AutoComplete");
            grid[currentRow, 0].View = captionModel;
            SourceGrid.Cells.Editors.ComboBox comboAutoComplete =
                new SourceGrid.Cells.Editors.ComboBox(typeof(string),
                                                      new string[] { "AAA", "ABC", "AZA", "BAA", "ZAA" },
                                                      true);
            comboAutoComplete.Control.AutoCompleteSource = AutoCompleteSource.ListItems;
            comboAutoComplete.Control.AutoCompleteMode   = AutoCompleteMode.Append;
            grid[currentRow, 1] = new SourceGrid.Cells.Cell("AAA", comboAutoComplete);

            currentRow++;

            //ComboBox DropDownList
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("ComboBox DropDownList");
            grid[currentRow, 0].View = captionModel;
            SourceGrid.Cells.Editors.ComboBox comboNoText = new SourceGrid.Cells.Editors.ComboBox(typeof(string), arraySample, true);
            grid[currentRow, 1]               = new SourceGrid.Cells.Cell(arraySample[0]);
            grid[currentRow, 1].Editor        = comboNoText;
            comboNoText.Control.DropDownStyle = ComboBoxStyle.DropDownList;

            currentRow++;

            //ComboBox DateTime Editable
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("ComboBox DateTime");
            grid[currentRow, 0].View = captionModel;
            DateTime[] arrayDt = new DateTime[] { new DateTime(1981, 10, 6), new DateTime(1991, 10, 6), new DateTime(2001, 10, 6) };
            SourceGrid.Cells.Editors.ComboBox comboDateTime = new SourceGrid.Cells.Editors.ComboBox(typeof(DateTime), arrayDt, false);
            grid[currentRow, 1] = new SourceGrid.Cells.Cell(arrayDt[0], comboDateTime);

            currentRow++;

            //ComboBox Custom Display (create a datamodel that has a custom display string)
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("ComboBox Custom Display");
            grid[currentRow, 0].View = captionModel;
            int[]    arrInt = new int[] { 0, 1, 2, 3, 4 };
            string[] arrStr = new string[] { "0 - Zero", "1 - One", "2 - Two", "3 - Three", "4- Four" };
            SourceGrid.Cells.Editors.ComboBox editorComboCustomDisplay = new SourceGrid.Cells.Editors.ComboBox(typeof(int), arrInt, true);
            editorComboCustomDisplay.Control.FormattingEnabled = true;
            DevAge.ComponentModel.Validator.ValueMapping comboMapping = new DevAge.ComponentModel.Validator.ValueMapping();
            comboMapping.DisplayStringList = arrStr;
            comboMapping.ValueList         = arrInt;
            comboMapping.SpecialList       = arrStr;
            comboMapping.SpecialType       = typeof(string);
            comboMapping.BindValidator(editorComboCustomDisplay);
            grid[currentRow, 1]        = new SourceGrid.Cells.Cell(0);
            grid[currentRow, 1].Editor = editorComboCustomDisplay;

            SourceGrid.Cells.Cell l_CellComboRealValue = new SourceGrid.Cells.Cell(grid[currentRow, 1].Value);
            l_CellComboRealValue.View = captionModel;
            SourceGrid.Cells.Controllers.BindProperty l_ComboBindProperty = new SourceGrid.Cells.Controllers.BindProperty(typeof(SourceGrid.Cells.Cell).GetProperty("Value"), l_CellComboRealValue);
            grid[currentRow, 1].AddController(l_ComboBindProperty);
            grid[currentRow, 2] = l_CellComboRealValue;

            currentRow++;

            //ComboBox with inline View
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("ComboBox Inline View");
            grid[currentRow, 0].View = captionModel;
            SourceGrid.Cells.Editors.ComboBox cbInline = new SourceGrid.Cells.Editors.ComboBox(typeof(string), arraySample, false);
            cbInline.EditableMode    = SourceGrid.EditableMode.Default | SourceGrid.EditableMode.Focus;
            grid[currentRow, 1]      = new SourceGrid.Cells.Cell(arraySample[0], cbInline);
            grid[currentRow, 1].View = SourceGrid.Cells.Views.ComboBox.Default;

            currentRow++;

            //Numeric Up Down Editor
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("NumericUpDown");
            grid[currentRow, 0].View = captionModel;

            grid[currentRow, 1] = new SourceGrid.Cells.Cell(0);
            SourceGrid.Cells.Editors.NumericUpDown l_NumericUpDownEditor = new SourceGrid.Cells.Editors.NumericUpDown(typeof(int), 50, -50, 1);
            grid[currentRow, 1].Editor = l_NumericUpDownEditor;

            currentRow++;

            //Multiline Textbox
            grid[currentRow, 0]            = new SourceGrid.Cells.Cell("Multiline Textbox");
            grid[currentRow, 0].View       = captionModel;
            grid[currentRow, 0].ColumnSpan = 1;
            grid[currentRow, 0].RowSpan    = 2;

            grid[currentRow, 1] = new SourceGrid.Cells.Cell("Hello\r\nWorld");
            SourceGrid.Cells.Editors.TextBox l_MultilineEditor = new SourceGrid.Cells.Editors.TextBox(typeof(string));
            l_MultilineEditor.Control.Multiline = true;
            grid[currentRow, 1].Editor          = l_MultilineEditor;
            grid[currentRow, 1].RowSpan         = 2;

            currentRow++;
            currentRow++;

            //Boolean (CheckBox)
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Boolean (CheckBox)");
            grid[currentRow, 0].View = captionModel;
            grid[currentRow, 1]      = new SourceGrid.Cells.CheckBox(null, true);
            grid[currentRow, 1].FindController <SourceGrid.Cells.Controllers.CheckBox>().CheckedChanged += InvertDisabledCheckBox(currentRow);


            SourceGrid.Cells.CheckBox l_DisabledCheckBox = new SourceGrid.Cells.CheckBox("Disabled Checkbox", true);
            l_DisabledCheckBox.Editor.EnableEdit = false;
            grid[currentRow, 2] = l_DisabledCheckBox;

            currentRow++;

            //DateTime with DateTimePicker Editor
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("DateTimePicker");
            grid[currentRow, 0].View = captionModel;
            SourceGrid.Cells.Editors.DateTimePicker editorDtPicker = new SourceGrid.Cells.Editors.DateTimePicker();
            grid[currentRow, 1]        = new SourceGrid.Cells.Cell(DateTime.Today);
            grid[currentRow, 1].Editor = editorDtPicker;

            currentRow++;

            //DateTime with DateTimePicker nullable Editor
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("DateTimePicker nullable");
            grid[currentRow, 0].View = captionModel;
            SourceGrid.Cells.Editors.DateTimePicker editorDtPickerNull = new SourceGrid.Cells.Editors.DateTimePicker();
            editorDtPickerNull.AllowNull = true;
            grid[currentRow, 1]          = new SourceGrid.Cells.Cell(null);
            grid[currentRow, 1].Editor   = editorDtPickerNull;

            currentRow++;

            //File editor
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("File editor");
            grid[currentRow, 0].View = captionModel;
            grid[currentRow, 1]      = new SourceGrid.Cells.Cell("c:\\windows\\System32\\user32.dll", new EditorFileDialog());

            currentRow++;

            // Richtext box
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("RichTextBox editor");
            grid[currentRow, 0].View = captionModel;
            string rtf = "{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0" +
                         "Microsoft Sans Serif;}}\r\n\\viewkind4\\uc1\\pard\\f0\\fs17 Only a \\b " +
                         "Test\\b0.\\par\r\n}\r\n";
            var richTextBox = new SourceGrid.Cells.RichTextBox(new RichText(rtf));
            grid[currentRow, 1] = richTextBox;

            currentRow++;

            #endregion

            #region Special Cells
            grid[currentRow, 0]            = new SourceGrid.Cells.Cell("Special Cells");
            grid[currentRow, 0].View       = titleModel;
            grid[currentRow, 0].ColumnSpan = 3;
            currentRow++;

            //Cell Button
            grid[currentRow, 0]       = new SourceGrid.Cells.Cell("Cell Button");
            grid[currentRow, 0].View  = captionModel;
            grid[currentRow, 1]       = new SourceGrid.Cells.Button("CellButton");
            grid[currentRow, 1].Image = Properties.Resources.FACE02.ToBitmap();
            SourceGrid.Cells.Controllers.Button buttonClickEvent = new SourceGrid.Cells.Controllers.Button();
            buttonClickEvent.Executed += new EventHandler(CellButton_Click);
            grid[currentRow, 1].Controller.AddController(buttonClickEvent);

            currentRow++;

            //Cell Link
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Cell Link");
            grid[currentRow, 0].View = captionModel;
            grid[currentRow, 1]      = new SourceGrid.Cells.Link("CellLink");
            SourceGrid.Cells.Controllers.Button linkClickEvent = new SourceGrid.Cells.Controllers.Button();
            linkClickEvent.Executed += new EventHandler(CellLink_Click);
            grid[currentRow, 1].Controller.AddController(linkClickEvent);

            currentRow++;

            //Custom draw cell
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Custom draw cell");
            grid[currentRow, 0].View = captionModel;
            grid[currentRow, 1]      = new SourceGrid.Cells.Cell("CustomView");
            grid[currentRow, 1].View = new RoundView();

            currentRow++;

            //Control Cell
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Control Cell");
            grid[currentRow, 0].View = captionModel;
            grid[currentRow, 1]      = new SourceGrid.Cells.Cell("control cell");
            ProgressBar progressBar = new ProgressBar();
            progressBar.Value = 50;
            grid.LinkedControls.Add(new SourceGrid.LinkedControlValue(progressBar, new SourceGrid.Position(currentRow, 1)));

            currentRow++;

            //Custom Border Cell
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Custom Border");
            grid[currentRow, 0].View = captionModel;

            SourceGrid.Cells.Views.Cell viewCustomBorder = new SourceGrid.Cells.Views.Cell();
            viewCustomBorder.Border = new DevAge.Drawing.RectangleBorder(new DevAge.Drawing.BorderLine(Color.Red, 1),
                                                                         new DevAge.Drawing.BorderLine(Color.Blue, 1),
                                                                         new DevAge.Drawing.BorderLine(Color.Violet, 1),
                                                                         new DevAge.Drawing.BorderLine(Color.Green, 1));
            grid[currentRow, 1]      = new SourceGrid.Cells.Cell("Custom Border");
            grid[currentRow, 1].View = viewCustomBorder;

            currentRow++;
            #endregion

            #region Custom Formatting
            grid[currentRow, 0]            = new SourceGrid.Cells.Cell("Custom Formatting");
            grid[currentRow, 0].View       = titleModel;
            grid[currentRow, 0].ColumnSpan = 3;
            currentRow++;

            //Format
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Default Format");
            grid[currentRow, 0].View = captionModel;

            grid[currentRow, 1] = new SourceGrid.Cells.Cell(88.5246);
            SourceGrid.Cells.Editors.TextBox editorCustom = new SourceGrid.Cells.Editors.TextBox(typeof(double));
            editorCustom.TypeConverter = new DevAge.ComponentModel.Converter.CurrencyTypeConverter(typeof(double));
            DevAge.ComponentModel.Converter.NumberTypeConverter numberFormatCustom = new DevAge.ComponentModel.Converter.NumberTypeConverter(typeof(double));
            editorCustom.TypeConverter = numberFormatCustom;
            grid[currentRow, 1].Editor = editorCustom;

            currentRow++;

            //Percent Editor
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Percent Format");
            grid[currentRow, 0].View = captionModel;

            grid[currentRow, 1] = new SourceGrid.Cells.Cell(88.5246);
            SourceGrid.Cells.Editors.TextBox l_PercentEditor = new SourceGrid.Cells.Editors.TextBox(typeof(double));
            l_PercentEditor.TypeConverter = new DevAge.ComponentModel.Converter.PercentTypeConverter(typeof(double));
            grid[currentRow, 1].Editor    = l_PercentEditor;

            currentRow++;

            //Currency Editor
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Currency Format");
            grid[currentRow, 0].View = captionModel;

            grid[currentRow, 1] = new SourceGrid.Cells.Cell(88.5246M);
            SourceGrid.Cells.Editors.TextBox l_CurrencyEditor = new SourceGrid.Cells.Editors.TextBox(typeof(decimal));
            l_CurrencyEditor.TypeConverter = new DevAge.ComponentModel.Converter.CurrencyTypeConverter(typeof(decimal));
            grid[currentRow, 1].Editor     = l_CurrencyEditor;

            currentRow++;

            //Format (#.00)
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Format #.00");
            grid[currentRow, 0].View = captionModel;

            grid[currentRow, 1]        = new SourceGrid.Cells.Cell(88.5246);
            editorCustom               = new SourceGrid.Cells.Editors.TextBox(typeof(double));
            numberFormatCustom         = new DevAge.ComponentModel.Converter.NumberTypeConverter(typeof(double));
            numberFormatCustom.Format  = "#.00";
            editorCustom.TypeConverter = numberFormatCustom;
            grid[currentRow, 1].Editor = editorCustom;

            currentRow++;

            //Format ("0000.0000")
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Format 0000.0000");
            grid[currentRow, 0].View = captionModel;

            grid[currentRow, 1]        = new SourceGrid.Cells.Cell(88.5246);
            editorCustom               = new SourceGrid.Cells.Editors.TextBox(typeof(double));
            numberFormatCustom         = new DevAge.ComponentModel.Converter.NumberTypeConverter(typeof(double));
            numberFormatCustom.Format  = "0000.0000";
            editorCustom.TypeConverter = numberFormatCustom;
            grid[currentRow, 1].Editor = editorCustom;

            currentRow++;

            //Format ("Scientific (exponential)")
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Format Scientific");
            grid[currentRow, 0].View = captionModel;

            grid[currentRow, 1] = new SourceGrid.Cells.Cell(0.0006);
            SourceGrid.Cells.Editors.TextBoxNumeric             editorExponential    = new SourceGrid.Cells.Editors.TextBoxNumeric(typeof(double));
            DevAge.ComponentModel.Converter.NumberTypeConverter exponentialConverter = new DevAge.ComponentModel.Converter.NumberTypeConverter(typeof(double), "e");
            exponentialConverter.NumberStyles = System.Globalization.NumberStyles.Float | System.Globalization.NumberStyles.AllowExponent;
            editorExponential.TypeConverter   = exponentialConverter;
            grid[currentRow, 1].Editor        = editorExponential;

            currentRow++;

            //DateTime 2 (using custom formatting)
            string dtFormat2 = "yyyy MM dd";
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Date(" + dtFormat2 + ")");
            grid[currentRow, 0].View = captionModel;

            string[] dtParseFormats = new string[] { dtFormat2 };
            System.Globalization.DateTimeStyles dtStyles = System.Globalization.DateTimeStyles.AllowInnerWhite | System.Globalization.DateTimeStyles.AllowLeadingWhite | System.Globalization.DateTimeStyles.AllowTrailingWhite | System.Globalization.DateTimeStyles.AllowWhiteSpaces;
            TypeConverter dtConverter = new DevAge.ComponentModel.Converter.DateTimeTypeConverter(dtFormat2, dtParseFormats, dtStyles);
            SourceGrid.Cells.Editors.TextBoxUITypeEditor editorDt2 = new SourceGrid.Cells.Editors.TextBoxUITypeEditor(typeof(DateTime));
            editorDt2.TypeConverter = dtConverter;

            grid[currentRow, 1]        = new SourceGrid.Cells.Cell(DateTime.Today);
            grid[currentRow, 1].Editor = editorDt2;

            currentRow++;


            //Text Ellipses
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Text Ellipses");
            grid[currentRow, 0].View = captionModel;

            grid[currentRow, 1] = new SourceGrid.Cells.Cell("This text is very very long and shows how to trim and add ellipses", typeof(string));
            SourceGrid.Cells.Views.Cell ellipsesView = new SourceGrid.Cells.Views.Cell();
            ellipsesView.TrimmingMode = SourceGrid.TrimmingMode.Word;
            grid[currentRow, 1].View  = ellipsesView;

            currentRow++;

            #endregion

            #region Image And Text Properties
            grid[currentRow, 0]            = new SourceGrid.Cells.Cell("Image And Text Properties");
            grid[currentRow, 0].View       = titleModel;
            grid[currentRow, 0].ColumnSpan = 3;
            currentRow++;

            //Cell Image
            SourceGrid.Cells.Cell       cellImage1 = new SourceGrid.Cells.Cell("Single Image");
            SourceGrid.Cells.Views.Cell viewImage  = new SourceGrid.Cells.Views.Cell(captionModel);
            cellImage1.View     = viewImage;
            grid[currentRow, 2] = cellImage1;
            cellImage1.RowSpan  = 4;
            cellImage1.Image    = Properties.Resources.FACE02.ToBitmap();

            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Image Alignment");
            grid[currentRow, 0].View = captionModel;
            grid[currentRow, 1]      = new SourceGrid.Cells.Cell(viewImage.ImageAlignment, typeof(DevAge.Drawing.ContentAlignment));
            grid[currentRow, 1].AddController(new SourceGrid.Cells.Controllers.BindProperty(typeof(SourceGrid.Cells.Views.Cell).GetProperty("ImageAlignment"), viewImage));

            currentRow++;

            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Stretch Image");
            grid[currentRow, 0].View = captionModel;
            grid[currentRow, 1]      = new SourceGrid.Cells.Cell(viewImage.ImageStretch, typeof(bool));
            grid[currentRow, 1].AddController(new SourceGrid.Cells.Controllers.BindProperty(typeof(SourceGrid.Cells.Views.Cell).GetProperty("ImageStretch"), viewImage));

            currentRow++;

            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Text Alignment");
            grid[currentRow, 0].View = captionModel;
            grid[currentRow, 1]      = new SourceGrid.Cells.Cell(viewImage.TextAlignment, typeof(DevAge.Drawing.ContentAlignment));
            grid[currentRow, 1].AddController(new SourceGrid.Cells.Controllers.BindProperty(typeof(SourceGrid.Cells.Views.Cell).GetProperty("TextAlignment"), viewImage));

            currentRow++;

            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("DrawMode");
            grid[currentRow, 0].View = captionModel;
            grid[currentRow, 1]      = new SourceGrid.Cells.Cell(viewImage.ElementsDrawMode, typeof(DevAge.Drawing.ElementsDrawMode));
            grid[currentRow, 1].AddController(new SourceGrid.Cells.Controllers.BindProperty(typeof(SourceGrid.Cells.Views.Cell).GetProperty("ElementsDrawMode"), viewImage));

            currentRow++;


            // Cell VisualModelMultiImages
            grid[currentRow, 1] = new SourceGrid.Cells.Cell("Multi Images");
            SourceGrid.Cells.Views.MultiImages modelMultiImages = new SourceGrid.Cells.Views.MultiImages();
            modelMultiImages.SubImages.Add(new DevAge.Drawing.VisualElements.Image(Properties.Resources.FACE00.ToBitmap()));
            modelMultiImages.SubImages.Add(new DevAge.Drawing.VisualElements.Image(Properties.Resources.FACE01.ToBitmap()));
            modelMultiImages.SubImages.Add(new DevAge.Drawing.VisualElements.Image(Properties.Resources.FACE02.ToBitmap()));
            modelMultiImages.SubImages.Add(new DevAge.Drawing.VisualElements.Image(Properties.Resources.FACE04.ToBitmap()));
            modelMultiImages.SubImages[0].AnchorArea = new DevAge.Drawing.AnchorArea(DevAge.Drawing.ContentAlignment.TopLeft, false);
            modelMultiImages.SubImages[1].AnchorArea = new DevAge.Drawing.AnchorArea(DevAge.Drawing.ContentAlignment.TopRight, false);
            modelMultiImages.SubImages[2].AnchorArea = new DevAge.Drawing.AnchorArea(DevAge.Drawing.ContentAlignment.BottomLeft, false);
            modelMultiImages.SubImages[3].AnchorArea = new DevAge.Drawing.AnchorArea(DevAge.Drawing.ContentAlignment.BottomRight, false);
            modelMultiImages.TextAlignment           = DevAge.Drawing.ContentAlignment.MiddleCenter;
            grid[currentRow, 1].View           = modelMultiImages;
            grid.Rows[currentRow].AutoSizeMode = SourceGrid.AutoSizeMode.MinimumSize;
            grid.Rows[currentRow].Height       = 50;

            currentRow++;


            // Cell Rotated Text
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("Rotated by angle");
            grid[currentRow, 0].View = captionModel;
            grid[currentRow, 1]      = new SourceGrid.Cells.Cell("Rotated Text", typeof(string));
            SourceGrid.Cells.Views.Cell rotateView = new SourceGrid.Cells.Views.Cell();
            rotateView.ElementText             = new RotatedText(45);
            grid[currentRow, 1].View           = rotateView;
            grid.Rows[currentRow].AutoSizeMode = SourceGrid.AutoSizeMode.MinimumSize;
            grid.Rows[currentRow].Height       = 50;

            currentRow++;

            // GDI+ Text
            grid[currentRow, 0]      = new SourceGrid.Cells.Cell("GDI+ Text");
            grid[currentRow, 0].View = captionModel;
            grid[currentRow, 1]      = new SourceGrid.Cells.Cell("Hello from GDI+", typeof(string));
            GDITextView gdiTextView = new GDITextView();
            gdiTextView.FormatFlags  = StringFormatFlags.DirectionVertical | StringFormatFlags.NoWrap;
            grid[currentRow, 1].View = gdiTextView;

            currentRow++;
            #endregion


            grid.Columns[0].AutoSizeMode = SourceGrid.AutoSizeMode.MinimumSize | SourceGrid.AutoSizeMode.Default;
            grid.Columns[1].AutoSizeMode = SourceGrid.AutoSizeMode.MinimumSize | SourceGrid.AutoSizeMode.Default;
            grid.Columns[2].AutoSizeMode = SourceGrid.AutoSizeMode.MinimumSize | SourceGrid.AutoSizeMode.Default;
            grid.MinimumWidth            = 50;
            grid.AutoSizeCells();
            grid.AutoStretchColumnsToFitWidth = true;
            grid.Columns.StretchToFit();
        }
Example #6
0
        private static void CreateColumns(SourceGrid.DataGridColumns columns, DataTable sourceTable)
        {
            SourceGrid.Cells.Editors.TextBoxNumeric numericEditor = new SourceGrid.Cells.Editors.TextBoxNumeric(typeof(decimal));
            numericEditor.TypeConverter = new DevAge.ComponentModel.Converter.NumberTypeConverter(typeof(decimal), "N");
            numericEditor.AllowNull     = true;          //the database value can be null (System.DbNull)
            SourceGrid.Cells.Editors.TextBox  stringEditor     = new SourceGrid.Cells.Editors.TextBox(typeof(string));
            SourceGrid.Cells.Editors.ComboBox externalIdEditor = new SourceGrid.Cells.Editors.ComboBox(typeof(int));
            externalIdEditor.StandardValues          = new int[] { 1, 2, 3, 4 };
            externalIdEditor.StandardValuesExclusive = true;
            DevAge.ComponentModel.Validator.ValueMapping mapping = new DevAge.ComponentModel.Validator.ValueMapping();
            mapping.ValueList            = new int[] { 1, 2, 3, 4 };
            mapping.SpecialType          = typeof(string);
            mapping.SpecialList          = new string[] { "Reference 1", "Reference 2", "Reference 3", "Reference 4" };
            mapping.ThrowErrorIfNotFound = false;
            mapping.BindValidator(externalIdEditor);


            DataColumn dataColumn;

            SourceGrid.DataGridColumn     gridColumn;
            SourceGrid.Cells.ICellVirtual dataCell;

            //Create columns

            dataColumn = sourceTable.Columns["Selected"];
            dataCell   = new SourceGrid.Cells.DataGrid.CheckBox(dataColumn);
            gridColumn = new MyDataGridColumn(columns.Grid, dataColumn, dataColumn.Caption, dataCell);
            columns.Insert(columns.Count, gridColumn);

            dataColumn      = sourceTable.Columns["Country"];
            dataCell        = new SourceGrid.Cells.DataGrid.Cell(dataColumn);
            dataCell.Editor = stringEditor;
            gridColumn      = new MyDataGridColumn(columns.Grid, dataColumn, dataColumn.Caption, dataCell);
            columns.Insert(columns.Count, gridColumn);

            dataColumn = sourceTable.Columns["Uniform"];
            dataCell   = new SourceGrid.Cells.DataGrid.Image(dataColumn);
            gridColumn = new MyDataGridColumn(columns.Grid, dataColumn, dataColumn.Caption, dataCell);
            columns.Insert(columns.Count, gridColumn);

            dataColumn      = sourceTable.Columns["Population"];
            dataCell        = new SourceGrid.Cells.DataGrid.Cell(dataColumn);
            dataCell.Editor = numericEditor;
            gridColumn      = new MyDataGridColumn(columns.Grid, dataColumn, dataColumn.Caption, dataCell);
            columns.Insert(columns.Count, gridColumn);

            dataColumn      = sourceTable.Columns["Surface"];
            dataCell        = new SourceGrid.Cells.DataGrid.Cell(dataColumn);
            dataCell.Editor = numericEditor;
            gridColumn      = new MyDataGridColumn(columns.Grid, dataColumn, dataColumn.Caption, dataCell);
            columns.Insert(columns.Count, gridColumn);

            dataColumn      = sourceTable.Columns["ExternalID"];
            dataCell        = new SourceGrid.Cells.DataGrid.Cell(dataColumn);
            dataCell.Editor = externalIdEditor;
            gridColumn      = new MyDataGridColumn(columns.Grid, dataColumn, dataColumn.Caption, dataCell);
            columns.Insert(columns.Count, gridColumn);

            gridColumn = new MyDataGridColumnStar(columns.Grid, "Star");
            columns.Insert(columns.Count, gridColumn);
        }
		private void CreateColumns(SourceGrid.DataGridColumns columns,
                                    DevAge.ComponentModel.IBoundList bindList)
		{
			SourceGrid.Cells.Editors.TextBoxNumeric numericEditor = new SourceGrid.Cells.Editors.TextBoxNumeric(typeof(decimal));
			numericEditor.TypeConverter = new DevAge.ComponentModel.Converter.NumberTypeConverter(typeof(decimal), "N");
			numericEditor.AllowNull = true;

			//Borders
			DevAge.Drawing.RectangleBorder border = new DevAge.Drawing.RectangleBorder(new DevAge.Drawing.BorderLine(Color.ForestGreen), new DevAge.Drawing.BorderLine(Color.ForestGreen));

			//Standard Views
			SourceGrid.Cells.Views.Link viewLink = new SourceGrid.Cells.Views.Link();
			viewLink.BackColor = Color.DarkSeaGreen;
			viewLink.Border = border;
			viewLink.ImageAlignment = DevAge.Drawing.ContentAlignment.MiddleCenter;
			viewLink.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleCenter;
			SourceGrid.Cells.Views.Cell viewString = new SourceGrid.Cells.Views.Cell();
			viewString.BackColor = Color.DarkSeaGreen;
			viewString.Border = border;
			viewString.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleLeft;
			SourceGrid.Cells.Views.Cell viewNumeric = new SourceGrid.Cells.Views.Cell();
			viewNumeric.BackColor = Color.DarkSeaGreen;
			viewNumeric.Border = border;
			viewNumeric.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleRight;
			SourceGrid.Cells.Views.Cell viewImage = new SourceGrid.Cells.Views.Cell();
			viewImage.BackColor = Color.DarkSeaGreen;
			viewImage.Border = border;
			viewImage.ImageStretch = false;
			viewImage.ImageAlignment = DevAge.Drawing.ContentAlignment.MiddleCenter;

            //Create columns
            SourceGrid.DataGridColumn gridColumn;

            gridColumn = dataGrid.Columns.Add(null, "", new SourceGrid.Cells.Link());
            gridColumn.DataCell.AddController(new LinkClickDelete());
            gridColumn.DataCell.View = viewLink;
            ((SourceGrid.Cells.Link)gridColumn.DataCell).Image = Properties.Resources.trash.ToBitmap();

            gridColumn = dataGrid.Columns.Add("Flag", "Flag", new SourceGrid.Cells.DataGrid.Image());
            gridColumn.DataCell.View = viewImage;

            gridColumn = dataGrid.Columns.Add("Country", "Country", typeof(string));
            gridColumn.DataCell.View = viewString;

            gridColumn = dataGrid.Columns.Add("Uniform", "Uniform", new SourceGrid.Cells.DataGrid.Image());
            gridColumn.DataCell.View = viewImage;

            gridColumn = dataGrid.Columns.Add("Capital", "Capital", typeof(string));
            gridColumn.DataCell.View = viewString;

            gridColumn = dataGrid.Columns.Add("Population", "Population", typeof(decimal));
            gridColumn.DataCell.Editor = numericEditor;
            gridColumn.DataCell.View = viewNumeric;

            gridColumn = dataGrid.Columns.Add("Surface", "Surface", typeof(decimal));
            gridColumn.DataCell.Editor = numericEditor;
            gridColumn.DataCell.View = viewNumeric;

            gridColumn = dataGrid.Columns.Add("Languages", "Languages", typeof(string));
            gridColumn.DataCell.View = viewString;

            gridColumn = dataGrid.Columns.Add("Currency", "Currency", typeof(string));
            gridColumn.DataCell.View = viewString;

            gridColumn = dataGrid.Columns.Add("Major Cities", "Major Cities", typeof(string));
            gridColumn.DataCell.View = viewString;

            gridColumn = dataGrid.Columns.Add("National Holiday", "National Holiday", typeof(string));
            gridColumn.DataCell.View = viewString;

            gridColumn = dataGrid.Columns.Add("Lowest point", "Lowest point", typeof(string));
            gridColumn.DataCell.View = viewString;

            gridColumn = dataGrid.Columns.Add("Highest point", "Highest point", typeof(string));
            gridColumn.DataCell.View = viewString;

            //Create a conditional view
            foreach (SourceGrid.DataGridColumn col in columns)
            {
                SourceGrid.Conditions.ICondition condition = 
                                SourceGrid.Conditions.ConditionBuilder.AlternateView(col.DataCell.View,
                                                                            Color.LightGray, Color.Black);
                col.Conditions.Add(condition);
            }
		}
Example #8
0
        private static void CreateColumns(SourceGrid.DataGridColumns columns, DataTable sourceTable)
        {
            SourceGrid.Cells.Editors.TextBoxNumeric numericEditor = new SourceGrid.Cells.Editors.TextBoxNumeric(typeof(decimal));
            numericEditor.TypeConverter = new DevAge.ComponentModel.Converter.NumberTypeConverter(typeof(decimal), "N");
            numericEditor.AllowNull     = true;
            SourceGrid.Cells.Editors.TextBox stringEditor = new SourceGrid.Cells.Editors.TextBox(typeof(string));

            //Borders
            DevAge.Drawing.RectangleBorder border = new DevAge.Drawing.RectangleBorder(new DevAge.Drawing.Border(Color.ForestGreen), new DevAge.Drawing.Border(Color.ForestGreen));

            //Standard Views
            SourceGrid.Cells.Views.Link viewLink = new SourceGrid.Cells.Views.Link();
            viewLink.BackColor      = Color.DarkSeaGreen;
            viewLink.Border         = border;
            viewLink.ImageAlignment = DevAge.Drawing.ContentAlignment.MiddleCenter;
            viewLink.TextAlignment  = DevAge.Drawing.ContentAlignment.MiddleCenter;
            SourceGrid.Cells.Views.Cell viewString = new SourceGrid.Cells.Views.Cell();
            viewString.BackColor     = Color.DarkSeaGreen;
            viewString.Border        = border;
            viewString.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleLeft;
            SourceGrid.Cells.Views.Cell viewNumeric = new SourceGrid.Cells.Views.Cell();
            viewNumeric.BackColor     = Color.DarkSeaGreen;
            viewNumeric.Border        = border;
            viewNumeric.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleRight;
            SourceGrid.Cells.Views.Cell viewImage = new SourceGrid.Cells.Views.Cell();
            viewImage.BackColor      = Color.DarkSeaGreen;
            viewImage.Border         = border;
            viewImage.ImageStretch   = false;
            viewImage.ImageAlignment = DevAge.Drawing.ContentAlignment.MiddleCenter;

            Color alternateColor = Color.LightGray;

            DataColumn dataColumn;
            DataGridColumnAlternate gridColumn;

            SourceGrid.Cells.ICellVirtual dataCell;

            //Create columns

            dataCell = new SourceGrid.Cells.Link("");
            dataCell.AddController(new LinkClickDelete());
            dataCell.View = viewLink;
            ((SourceGrid.Cells.Link)dataCell).Image = Properties.Resources.trash.ToBitmap();
            gridColumn = new DataGridColumnAlternate(columns.Grid, null, "Delete", dataCell, alternateColor);
            columns.Insert(columns.Count, gridColumn);
            //Add an image to the header

            dataColumn    = sourceTable.Columns["Flag"];
            dataCell      = new SourceGrid.Cells.DataGrid.Image(dataColumn);
            dataCell.View = viewImage;
            gridColumn    = new DataGridColumnAlternate(columns.Grid, dataColumn, dataColumn.Caption, dataCell, alternateColor);
            columns.Insert(columns.Count, gridColumn);

            dataColumn      = sourceTable.Columns["Country"];
            dataCell        = new SourceGrid.Cells.DataGrid.Cell(dataColumn);
            dataCell.View   = viewString;
            dataCell.Editor = stringEditor;
            gridColumn      = new DataGridColumnAlternate(columns.Grid, dataColumn, dataColumn.Caption, dataCell, alternateColor);
            columns.Insert(columns.Count, gridColumn);

            dataColumn    = sourceTable.Columns["Uniform"];
            dataCell      = new SourceGrid.Cells.DataGrid.Image(dataColumn);
            dataCell.View = viewImage;
            gridColumn    = new DataGridColumnAlternate(columns.Grid, dataColumn, dataColumn.Caption, dataCell, alternateColor);
            columns.Insert(columns.Count, gridColumn);

            dataColumn      = sourceTable.Columns["Capital"];
            dataCell        = new SourceGrid.Cells.DataGrid.Cell(dataColumn);
            dataCell.View   = viewString;
            dataCell.Editor = stringEditor;
            gridColumn      = new DataGridColumnAlternate(columns.Grid, dataColumn, dataColumn.Caption, dataCell, alternateColor);
            columns.Insert(columns.Count, gridColumn);

            dataColumn      = sourceTable.Columns["Population"];
            dataCell        = new SourceGrid.Cells.DataGrid.Cell(dataColumn);
            dataCell.View   = viewNumeric;
            dataCell.Editor = numericEditor;
            gridColumn      = new DataGridColumnAlternate(columns.Grid, dataColumn, dataColumn.Caption, dataCell, alternateColor);
            columns.Insert(columns.Count, gridColumn);

            dataColumn      = sourceTable.Columns["Surface"];
            dataCell        = new SourceGrid.Cells.DataGrid.Cell(dataColumn);
            dataCell.View   = viewNumeric;
            dataCell.Editor = numericEditor;
            gridColumn      = new DataGridColumnAlternate(columns.Grid, dataColumn, dataColumn.Caption, dataCell, alternateColor);
            columns.Insert(columns.Count, gridColumn);

            dataColumn      = sourceTable.Columns["Languages"];
            dataCell        = new SourceGrid.Cells.DataGrid.Cell(dataColumn);
            dataCell.View   = viewString;
            dataCell.Editor = stringEditor;
            gridColumn      = new DataGridColumnAlternate(columns.Grid, dataColumn, dataColumn.Caption, dataCell, alternateColor);
            columns.Insert(columns.Count, gridColumn);

            dataColumn      = sourceTable.Columns["Currency"];
            dataCell        = new SourceGrid.Cells.DataGrid.Cell(dataColumn);
            dataCell.View   = viewString;
            dataCell.Editor = stringEditor;
            gridColumn      = new DataGridColumnAlternate(columns.Grid, dataColumn, dataColumn.Caption, dataCell, alternateColor);
            columns.Insert(columns.Count, gridColumn);

            dataColumn      = sourceTable.Columns["Major Cities"];
            dataCell        = new SourceGrid.Cells.DataGrid.Cell(dataColumn);
            dataCell.View   = viewString;
            dataCell.Editor = stringEditor;
            gridColumn      = new DataGridColumnAlternate(columns.Grid, dataColumn, dataColumn.Caption, dataCell, alternateColor);
            columns.Insert(columns.Count, gridColumn);

            dataColumn      = sourceTable.Columns["National Holiday"];
            dataCell        = new SourceGrid.Cells.DataGrid.Cell(dataColumn);
            dataCell.View   = viewString;
            dataCell.Editor = stringEditor;
            gridColumn      = new DataGridColumnAlternate(columns.Grid, dataColumn, dataColumn.Caption, dataCell, alternateColor);
            columns.Insert(columns.Count, gridColumn);

            dataColumn      = sourceTable.Columns["Lowest point"];
            dataCell        = new SourceGrid.Cells.DataGrid.Cell(dataColumn);
            dataCell.View   = viewString;
            dataCell.Editor = stringEditor;
            gridColumn      = new DataGridColumnAlternate(columns.Grid, dataColumn, dataColumn.Caption, dataCell, alternateColor);
            columns.Insert(columns.Count, gridColumn);

            dataColumn      = sourceTable.Columns["Highest point"];
            dataCell        = new SourceGrid.Cells.DataGrid.Cell(dataColumn);
            dataCell.View   = viewString;
            dataCell.Editor = stringEditor;
            gridColumn      = new DataGridColumnAlternate(columns.Grid, dataColumn, dataColumn.Caption, dataCell, alternateColor);
            columns.Insert(columns.Count, gridColumn);
        }
Example #9
0
		protected override void OnLoad(EventArgs e)
		{
			base.OnLoad(e);

			grid.Redim(62, 3);

			SourceGrid.Cells.Views.Cell titleModel = new SourceGrid.Cells.Views.Cell();
			titleModel.BackColor = Color.SteelBlue;
			titleModel.ForeColor = Color.White;
			titleModel.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleCenter;
			SourceGrid.Cells.Views.Cell captionModel = new SourceGrid.Cells.Views.Cell();
			captionModel.BackColor = grid.BackColor;

			int currentRow = 0;

			#region Base Types
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Base Types");
			grid[currentRow, 0].View = titleModel;
			grid[currentRow, 0].ColumnSpan = 3;
			currentRow++;

			//string
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("String");
			grid[currentRow, 0].View = captionModel;
			grid[currentRow, 1] = new SourceGrid.Cells.Cell("String Value", typeof(string));

			currentRow++;

			//double
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Double");
			grid[currentRow, 0].View = captionModel;
			grid[currentRow, 1] = new SourceGrid.Cells.Cell(1.5, typeof(double));

			currentRow++;

			//int
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Int");
			grid[currentRow, 0].View = captionModel;
			grid[currentRow, 1] = new SourceGrid.Cells.Cell(5, typeof(int));

			currentRow++;

			//DateTime
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("DateTime");
			grid[currentRow, 0].View = captionModel;
			grid[currentRow, 1] = new SourceGrid.Cells.Cell(DateTime.Now, typeof(DateTime));

			currentRow++;

			//Boolean
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Boolean");
			grid[currentRow, 0].View = captionModel;
			grid[currentRow, 1] = new SourceGrid.Cells.Cell(true, typeof(Boolean));

			currentRow++;
			#endregion

			#region Complex Types
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Complex Types");
			grid[currentRow, 0].View = titleModel;
			grid[currentRow, 0].ColumnSpan = 3;
			currentRow++;

			//Font
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Font");
			grid[currentRow, 0].View = captionModel;
			grid[currentRow, 1] = new SourceGrid.Cells.Cell(this.Font, typeof(Font));

			currentRow++;

			//Cursor
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Cursor");
			grid[currentRow, 0].View = captionModel;
			grid[currentRow, 1] = new SourceGrid.Cells.Cell(Cursors.Arrow, typeof(Cursor));

			currentRow++;

			//Point
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Point");
			grid[currentRow, 0].View = captionModel;
			grid[currentRow, 1] = new SourceGrid.Cells.Cell(new Point(2, 3), typeof(Point));

			currentRow++;

			//Rectangle
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Rectangle");
			grid[currentRow, 0].View = captionModel;
			grid[currentRow, 1] = new SourceGrid.Cells.Cell(new Rectangle(100, 100, 200, 200), typeof(Rectangle));

			currentRow++;

			//Image
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Image");
			grid[currentRow, 0].View = captionModel;
			grid[currentRow, 1] = new SourceGrid.Cells.Image(Properties.Resources.CalcioSmall);

			currentRow++;

			//Enum AnchorStyle
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("AnchorStyle");
			grid[currentRow, 0].View = captionModel;
			grid[currentRow, 1] = new SourceGrid.Cells.Cell(AnchorStyles.Bottom, typeof(AnchorStyles));

			currentRow++;

			//Enum
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Enum");
			grid[currentRow, 0].View = captionModel;
			grid[currentRow, 1] = new SourceGrid.Cells.Cell(System.Windows.Forms.BorderStyle.Fixed3D, typeof(System.Windows.Forms.BorderStyle));

			currentRow++;

			//String[]
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("String Array");
			grid[currentRow, 0].View = captionModel;
			string[] strArray = new string[] { "Value 1", "Value 2" };
			grid[currentRow, 1] = new SourceGrid.Cells.Cell(strArray, typeof(string[]));

			currentRow++;

			//Double[]
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Double Array");
			grid[currentRow, 0].View = captionModel;
			double[] dblArray = new double[] { 1, 0.5, 0.1 };
			grid[currentRow, 1] = new SourceGrid.Cells.Cell(dblArray, typeof(double[]));

			currentRow++;
			#endregion

			#region Special Editors
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Special Editors");
			grid[currentRow, 0].View = titleModel;
			grid[currentRow, 0].ColumnSpan = 3;
			currentRow++;

			//Time
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Time");
			grid[currentRow, 0].View = captionModel;
			grid[currentRow, 1] = new SourceGrid.Cells.Cell(DateTime.Now);
			grid[currentRow, 1].Editor = new SourceGrid.Cells.Editors.TimePicker();

			currentRow++;

			//Double Chars Validation
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Double Chars Validation");
			grid[currentRow, 0].View = captionModel;
			SourceGrid.Cells.Editors.TextBoxNumeric numericEditor = new SourceGrid.Cells.Editors.TextBoxNumeric(typeof(double));
			numericEditor.KeyPress += delegate(object sender, KeyPressEventArgs keyArgs)
			{
				bool isValid = char.IsNumber(keyArgs.KeyChar) ||
					keyArgs.KeyChar == System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator[0];

				keyArgs.Handled = !isValid;
			};
			grid[currentRow, 1] = new SourceGrid.Cells.Cell(0.5);
			grid[currentRow, 1].Editor = numericEditor;

			currentRow++;

			//String Chars (ABC)
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Chars Validation(only ABC)");
			grid[currentRow, 0].View = captionModel;
			SourceGrid.Cells.Editors.TextBox stringEditor = new SourceGrid.Cells.Editors.TextBox(typeof(string));
			stringEditor.KeyPress += delegate(object sender, KeyPressEventArgs keyArgs)
			{
				keyArgs.KeyChar = char.ToUpper(keyArgs.KeyChar);
				bool isValid = keyArgs.KeyChar == 'A' || keyArgs.KeyChar == 'B' || keyArgs.KeyChar == 'C';

				keyArgs.Handled = !isValid;
			};
			grid[currentRow, 1] = new SourceGrid.Cells.Cell("AABB");
			grid[currentRow, 1].Editor = stringEditor;

			currentRow++;

			//String Validating
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("String validating(min 6 chars)");
			grid[currentRow, 0].View = captionModel;
			SourceGrid.Cells.Editors.TextBox stringEditorValidating = new SourceGrid.Cells.Editors.TextBox(typeof(string));
			stringEditorValidating.Control.Validating += delegate(object sender, CancelEventArgs cancelEvent)
			{
				string val = ((TextBox)sender).Text;
				if (val == null || val.Length < 6)
					cancelEvent.Cancel = true;
			};
			grid[currentRow, 1] = new SourceGrid.Cells.Cell("test string");
			grid[currentRow, 1].Editor = stringEditorValidating;

			currentRow++;

			//Int 0-100 or null
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Int 0-100 or null");
			grid[currentRow, 0].View = captionModel;
			SourceGrid.Cells.Editors.TextBoxNumeric numericEditor0_100 = new SourceGrid.Cells.Editors.TextBoxNumeric(typeof(int));
			numericEditor0_100.MinimumValue = 0;
			numericEditor0_100.MaximumValue = 100;
			numericEditor0_100.AllowNull = true;
			grid[currentRow, 1] = new SourceGrid.Cells.Cell(7);
			grid[currentRow, 1].Editor = numericEditor0_100;

			currentRow++;

			//Double Custom Conversion
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Dbl custom conversion");
			grid[currentRow, 0].View = captionModel;
			SourceGrid.Cells.Editors.TextBox dblCustomConversion = new SourceGrid.Cells.Editors.TextBox(typeof(double));
			dblCustomConversion.ConvertingObjectToValue += delegate(object sender,
			                                                        DevAge.ComponentModel.ConvertingObjectEventArgs conv)
			{
				if (conv.Value is string)
				{
					//Here you can add any custom code
					double val;
					if (double.TryParse((string)conv.Value, out val))
					{
						conv.Value = val;
						conv.ConvertingStatus = DevAge.ComponentModel.ConvertingStatus.Completed;
					}
				}
			};
			grid[currentRow, 1] = new SourceGrid.Cells.Cell(73.839);
			grid[currentRow, 1].Editor = dblCustomConversion;

			currentRow++;

			//Enum Custom Display
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Enum Custom Display");
			grid[currentRow, 0].View = captionModel;
			SourceGrid.Cells.Editors.ComboBox keysCombo = new SourceGrid.Cells.Editors.ComboBox(typeof(Keys));
			keysCombo.Control.FormattingEnabled = true;
			keysCombo.ConvertingValueToDisplayString += delegate(object sender, DevAge.ComponentModel.ConvertingObjectEventArgs convArgs)
			{
				if (convArgs.Value is Keys)
					convArgs.Value = (int)((Keys)convArgs.Value) + " - " + convArgs.Value.ToString();
			};
			grid[currentRow, 1] = new SourceGrid.Cells.Cell(Keys.Enter);
			grid[currentRow, 1].Editor = keysCombo;

			currentRow++;

			string[] arraySample = new string[] { "Value 1", "Value 2", "Value 3" };
			//ComboBox 1
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("ComboBox String");
			grid[currentRow, 0].View = captionModel;
			SourceGrid.Cells.Editors.ComboBox comboStandard = new SourceGrid.Cells.Editors.ComboBox(typeof(string), arraySample, false);
			comboStandard.Control.MaxLength = 10;
			grid[currentRow, 1] = new SourceGrid.Cells.Cell(arraySample[0], comboStandard);

			currentRow++;

			//ComboBox exclusive
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("ComboBox String Exclusive");
			grid[currentRow, 0].View = captionModel;
			SourceGrid.Cells.Editors.ComboBox comboExclusive = new SourceGrid.Cells.Editors.ComboBox(typeof(string), arraySample, true);
			grid[currentRow, 1] = new SourceGrid.Cells.Cell(arraySample[0], comboExclusive);

			currentRow++;

			//ComboBox AutoComplete
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("ComboBox AutoComplete");
			grid[currentRow, 0].View = captionModel;
			SourceGrid.Cells.Editors.ComboBox comboAutoComplete =
				new SourceGrid.Cells.Editors.ComboBox(typeof(string),
				                                      new string[] { "AAA", "ABC", "AZA", "BAA", "ZAA" },
				                                      true);
			comboAutoComplete.Control.AutoCompleteSource = AutoCompleteSource.ListItems;
			comboAutoComplete.Control.AutoCompleteMode = AutoCompleteMode.Append;
			grid[currentRow, 1] = new SourceGrid.Cells.Cell("AAA", comboAutoComplete);

			currentRow++;

			//ComboBox DropDownList
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("ComboBox DropDownList");
			grid[currentRow, 0].View = captionModel;
			SourceGrid.Cells.Editors.ComboBox comboNoText = new SourceGrid.Cells.Editors.ComboBox(typeof(string), arraySample, true);
			grid[currentRow, 1] = new SourceGrid.Cells.Cell(arraySample[0]);
			grid[currentRow, 1].Editor = comboNoText;
			comboNoText.Control.DropDownStyle = ComboBoxStyle.DropDownList;

			currentRow++;

			//ComboBox DateTime Editable
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("ComboBox DateTime");
			grid[currentRow, 0].View = captionModel;
			DateTime[] arrayDt = new DateTime[] { new DateTime(1981, 10, 6), new DateTime(1991, 10, 6), new DateTime(2001, 10, 6) };
			SourceGrid.Cells.Editors.ComboBox comboDateTime = new SourceGrid.Cells.Editors.ComboBox(typeof(DateTime), arrayDt, false);
			grid[currentRow, 1] = new SourceGrid.Cells.Cell(arrayDt[0], comboDateTime);

			currentRow++;

			//ComboBox Custom Display (create a datamodel that has a custom display string)
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("ComboBox Custom Display");
			grid[currentRow, 0].View = captionModel;
			int[] arrInt = new int[] { 0, 1, 2, 3, 4 };
			string[] arrStr = new string[] { "0 - Zero", "1 - One", "2 - Two", "3 - Three", "4- Four" };
			SourceGrid.Cells.Editors.ComboBox editorComboCustomDisplay = new SourceGrid.Cells.Editors.ComboBox(typeof(int), arrInt, true);
			editorComboCustomDisplay.Control.FormattingEnabled = true;
			DevAge.ComponentModel.Validator.ValueMapping comboMapping = new DevAge.ComponentModel.Validator.ValueMapping();
			comboMapping.DisplayStringList = arrStr;
			comboMapping.ValueList = arrInt;
			comboMapping.SpecialList = arrStr;
			comboMapping.SpecialType = typeof(string);
			comboMapping.BindValidator(editorComboCustomDisplay);
			grid[currentRow, 1] = new SourceGrid.Cells.Cell(0);
			grid[currentRow, 1].Editor = editorComboCustomDisplay;

			SourceGrid.Cells.Cell l_CellComboRealValue = new SourceGrid.Cells.Cell(grid[currentRow, 1].Value);
			l_CellComboRealValue.View = captionModel;
			SourceGrid.Cells.Controllers.BindProperty l_ComboBindProperty = new SourceGrid.Cells.Controllers.BindProperty(typeof(SourceGrid.Cells.Cell).GetProperty("Value"), l_CellComboRealValue);
			grid[currentRow, 1].AddController(l_ComboBindProperty);
			grid[currentRow, 2] = l_CellComboRealValue;

			currentRow++;

			//ComboBox with inline View
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("ComboBox Inline View");
			grid[currentRow, 0].View = captionModel;
			SourceGrid.Cells.Editors.ComboBox cbInline = new SourceGrid.Cells.Editors.ComboBox(typeof(string), arraySample, false);
			cbInline.EditableMode = SourceGrid.EditableMode.Default | SourceGrid.EditableMode.Focus;
			grid[currentRow, 1] = new SourceGrid.Cells.Cell(arraySample[0], cbInline);
			grid[currentRow, 1].View = SourceGrid.Cells.Views.ComboBox.Default;

			currentRow++;

			//Numeric Up Down Editor
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("NumericUpDown");
			grid[currentRow, 0].View = captionModel;

			grid[currentRow, 1] = new SourceGrid.Cells.Cell(0);
			SourceGrid.Cells.Editors.NumericUpDown l_NumericUpDownEditor = new SourceGrid.Cells.Editors.NumericUpDown(typeof(int), 50, -50, 1);
			grid[currentRow, 1].Editor = l_NumericUpDownEditor;

			currentRow++;

			//Multiline Textbox
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Multiline Textbox");
			grid[currentRow, 0].View = captionModel;
			grid[currentRow, 0].ColumnSpan = 1;
			grid[currentRow, 0].RowSpan = 2;

			grid[currentRow, 1] = new SourceGrid.Cells.Cell("Hello\r\nWorld");
			SourceGrid.Cells.Editors.TextBox l_MultilineEditor = new SourceGrid.Cells.Editors.TextBox(typeof(string));
			l_MultilineEditor.Control.Multiline = true;
			grid[currentRow, 1].Editor = l_MultilineEditor;
			grid[currentRow, 1].RowSpan = 2;

			currentRow++;
			currentRow++;

			//Boolean (CheckBox)
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Boolean (CheckBox)");
			grid[currentRow, 0].View = captionModel;
			grid[currentRow, 1] = new SourceGrid.Cells.CheckBox(null, true);
			grid[currentRow, 1].FindController<SourceGrid.Cells.Controllers.CheckBox>().CheckedChanged += InvertDisabledCheckBox(currentRow);
			

			SourceGrid.Cells.CheckBox l_DisabledCheckBox = new SourceGrid.Cells.CheckBox("Disabled Checkbox", true);
			l_DisabledCheckBox.Editor.EnableEdit = false;
			grid[currentRow, 2] = l_DisabledCheckBox;

			currentRow++;

			//DateTime with DateTimePicker Editor
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("DateTimePicker");
			grid[currentRow, 0].View = captionModel;
			SourceGrid.Cells.Editors.DateTimePicker editorDtPicker = new SourceGrid.Cells.Editors.DateTimePicker();
			grid[currentRow, 1] = new SourceGrid.Cells.Cell(DateTime.Today);
			grid[currentRow, 1].Editor = editorDtPicker;

			currentRow++;

			//DateTime with DateTimePicker nullable Editor
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("DateTimePicker nullable");
			grid[currentRow, 0].View = captionModel;
			SourceGrid.Cells.Editors.DateTimePicker editorDtPickerNull = new SourceGrid.Cells.Editors.DateTimePicker();
			editorDtPickerNull.AllowNull = true;
			grid[currentRow, 1] = new SourceGrid.Cells.Cell(null);
			grid[currentRow, 1].Editor = editorDtPickerNull;

			currentRow++;

			//File editor
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("File editor");
			grid[currentRow, 0].View = captionModel;
			grid[currentRow, 1] = new SourceGrid.Cells.Cell("c:\\windows\\System32\\user32.dll", new EditorFileDialog());

			currentRow++;
			
			// Richtext box
            grid[currentRow, 0] = new SourceGrid.Cells.Cell("RichTextBox editor");
            grid[currentRow, 0].View = captionModel;
            string rtf = "{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0" +
                    "Microsoft Sans Serif;}}\r\n\\viewkind4\\uc1\\pard\\f0\\fs17 Only a \\b " +
                    "Test\\b0.\\par\r\n}\r\n";
			var richTextBox = new SourceGrid.Cells.RichTextBox(new RichText(rtf));
			grid[currentRow, 1] = richTextBox;

			currentRow++;

			#endregion

			#region Special Cells
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Special Cells");
			grid[currentRow, 0].View = titleModel;
			grid[currentRow, 0].ColumnSpan = 3;
			currentRow++;

			//Cell Button
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Cell Button");
			grid[currentRow, 0].View = captionModel;
			grid[currentRow, 1] = new SourceGrid.Cells.Button("CellButton");
			grid[currentRow, 1].Image = Properties.Resources.FACE02.ToBitmap();
			SourceGrid.Cells.Controllers.Button buttonClickEvent = new SourceGrid.Cells.Controllers.Button();
			buttonClickEvent.Executed += new EventHandler(CellButton_Click);
			grid[currentRow, 1].Controller.AddController(buttonClickEvent);

			currentRow++;

			//Cell Link
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Cell Link");
			grid[currentRow, 0].View = captionModel;
			grid[currentRow, 1] = new SourceGrid.Cells.Link("CellLink");
			SourceGrid.Cells.Controllers.Button linkClickEvent = new SourceGrid.Cells.Controllers.Button();
			linkClickEvent.Executed += new EventHandler(CellLink_Click);
			grid[currentRow, 1].Controller.AddController(linkClickEvent);

			currentRow++;

			//Custom draw cell
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Custom draw cell");
			grid[currentRow, 0].View = captionModel;
			grid[currentRow, 1] = new SourceGrid.Cells.Cell("CustomView");
			grid[currentRow, 1].View = new RoundView();

			currentRow++;

			//Control Cell
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Control Cell");
			grid[currentRow, 0].View = captionModel;
			grid[currentRow, 1] = new SourceGrid.Cells.Cell("control cell");
			ProgressBar progressBar = new ProgressBar();
			progressBar.Value = 50;
			grid.LinkedControls.Add(new SourceGrid.LinkedControlValue(progressBar, new SourceGrid.Position(currentRow, 1)));

			currentRow++;

			//Custom Border Cell
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Custom Border");
			grid[currentRow, 0].View = captionModel;

			SourceGrid.Cells.Views.Cell viewCustomBorder = new SourceGrid.Cells.Views.Cell();
			viewCustomBorder.Border = new DevAge.Drawing.RectangleBorder(new DevAge.Drawing.BorderLine(Color.Red, 1),
			                                                             new DevAge.Drawing.BorderLine(Color.Blue, 1),
			                                                             new DevAge.Drawing.BorderLine(Color.Violet, 1),
			                                                             new DevAge.Drawing.BorderLine(Color.Green, 1));
			grid[currentRow, 1] = new SourceGrid.Cells.Cell("Custom Border");
			grid[currentRow, 1].View = viewCustomBorder;

			currentRow++;
			#endregion

			#region Custom Formatting
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Custom Formatting");
			grid[currentRow, 0].View = titleModel;
			grid[currentRow, 0].ColumnSpan = 3;
			currentRow++;

			//Format
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Default Format");
			grid[currentRow, 0].View = captionModel;

			grid[currentRow, 1] = new SourceGrid.Cells.Cell(88.5246);
			SourceGrid.Cells.Editors.TextBox editorCustom = new SourceGrid.Cells.Editors.TextBox(typeof(double));
			editorCustom.TypeConverter = new DevAge.ComponentModel.Converter.CurrencyTypeConverter(typeof(double));
			DevAge.ComponentModel.Converter.NumberTypeConverter numberFormatCustom = new DevAge.ComponentModel.Converter.NumberTypeConverter(typeof(double));
			editorCustom.TypeConverter = numberFormatCustom;
			grid[currentRow, 1].Editor = editorCustom;

			currentRow++;

			//Percent Editor
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Percent Format");
			grid[currentRow, 0].View = captionModel;

			grid[currentRow, 1] = new SourceGrid.Cells.Cell(88.5246);
			SourceGrid.Cells.Editors.TextBox l_PercentEditor = new SourceGrid.Cells.Editors.TextBox(typeof(double));
			l_PercentEditor.TypeConverter = new DevAge.ComponentModel.Converter.PercentTypeConverter(typeof(double));
			grid[currentRow, 1].Editor = l_PercentEditor;

			currentRow++;

			//Currency Editor
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Currency Format");
			grid[currentRow, 0].View = captionModel;

			grid[currentRow, 1] = new SourceGrid.Cells.Cell(88.5246M);
			SourceGrid.Cells.Editors.TextBox l_CurrencyEditor = new SourceGrid.Cells.Editors.TextBox(typeof(decimal));
			l_CurrencyEditor.TypeConverter = new DevAge.ComponentModel.Converter.CurrencyTypeConverter(typeof(decimal));
			grid[currentRow, 1].Editor = l_CurrencyEditor;

			currentRow++;

			//Format (#.00)
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Format #.00");
			grid[currentRow, 0].View = captionModel;

			grid[currentRow, 1] = new SourceGrid.Cells.Cell(88.5246);
			editorCustom = new SourceGrid.Cells.Editors.TextBox(typeof(double));
			numberFormatCustom = new DevAge.ComponentModel.Converter.NumberTypeConverter(typeof(double));
			numberFormatCustom.Format = "#.00";
			editorCustom.TypeConverter = numberFormatCustom;
			grid[currentRow, 1].Editor = editorCustom;

			currentRow++;

			//Format ("0000.0000")
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Format 0000.0000");
			grid[currentRow, 0].View = captionModel;

			grid[currentRow, 1] = new SourceGrid.Cells.Cell(88.5246);
			editorCustom = new SourceGrid.Cells.Editors.TextBox(typeof(double));
			numberFormatCustom = new DevAge.ComponentModel.Converter.NumberTypeConverter(typeof(double));
			numberFormatCustom.Format = "0000.0000";
			editorCustom.TypeConverter = numberFormatCustom;
			grid[currentRow, 1].Editor = editorCustom;

			currentRow++;

			//Format ("Scientific (exponential)")
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Format Scientific");
			grid[currentRow, 0].View = captionModel;

			grid[currentRow, 1] = new SourceGrid.Cells.Cell(0.0006);
			SourceGrid.Cells.Editors.TextBoxNumeric editorExponential = new SourceGrid.Cells.Editors.TextBoxNumeric(typeof(double));
			DevAge.ComponentModel.Converter.NumberTypeConverter exponentialConverter = new DevAge.ComponentModel.Converter.NumberTypeConverter(typeof(double), "e");
			exponentialConverter.NumberStyles = System.Globalization.NumberStyles.Float | System.Globalization.NumberStyles.AllowExponent;
			editorExponential.TypeConverter = exponentialConverter;
			grid[currentRow, 1].Editor = editorExponential;

			currentRow++;

			//DateTime 2 (using custom formatting)
			string dtFormat2 = "yyyy MM dd";
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Date(" + dtFormat2 + ")");
			grid[currentRow, 0].View = captionModel;

			string[] dtParseFormats = new string[] { dtFormat2 };
			System.Globalization.DateTimeStyles dtStyles = System.Globalization.DateTimeStyles.AllowInnerWhite | System.Globalization.DateTimeStyles.AllowLeadingWhite | System.Globalization.DateTimeStyles.AllowTrailingWhite | System.Globalization.DateTimeStyles.AllowWhiteSpaces;
			TypeConverter dtConverter = new DevAge.ComponentModel.Converter.DateTimeTypeConverter(dtFormat2, dtParseFormats, dtStyles);
			SourceGrid.Cells.Editors.TextBoxUITypeEditor editorDt2 = new SourceGrid.Cells.Editors.TextBoxUITypeEditor(typeof(DateTime));
			editorDt2.TypeConverter = dtConverter;

			grid[currentRow, 1] = new SourceGrid.Cells.Cell(DateTime.Today);
			grid[currentRow, 1].Editor = editorDt2;

			currentRow++;


			//Text Ellipses
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Text Ellipses");
			grid[currentRow, 0].View = captionModel;

			grid[currentRow, 1] = new SourceGrid.Cells.Cell("This text is very very long and shows how to trim and add ellipses", typeof(string));
			SourceGrid.Cells.Views.Cell ellipsesView = new SourceGrid.Cells.Views.Cell();
			ellipsesView.TrimmingMode = SourceGrid.TrimmingMode.Word;
			grid[currentRow, 1].View = ellipsesView;

			currentRow++;

			#endregion

			#region Image And Text Properties
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Image And Text Properties");
			grid[currentRow, 0].View = titleModel;
			grid[currentRow, 0].ColumnSpan = 3;
			currentRow++;

			//Cell Image
			SourceGrid.Cells.Cell cellImage1 = new SourceGrid.Cells.Cell("Single Image");
			SourceGrid.Cells.Views.Cell viewImage = new SourceGrid.Cells.Views.Cell(captionModel);
			cellImage1.View = viewImage;
			grid[currentRow, 2] = cellImage1;
			cellImage1.RowSpan = 4;
			cellImage1.Image = Properties.Resources.FACE02.ToBitmap();

			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Image Alignment");
			grid[currentRow, 0].View = captionModel;
			grid[currentRow, 1] = new SourceGrid.Cells.Cell(viewImage.ImageAlignment, typeof(DevAge.Drawing.ContentAlignment));
			grid[currentRow, 1].AddController(new SourceGrid.Cells.Controllers.BindProperty(typeof(SourceGrid.Cells.Views.Cell).GetProperty("ImageAlignment"), viewImage));

			currentRow++;

			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Stretch Image");
			grid[currentRow, 0].View = captionModel;
			grid[currentRow, 1] = new SourceGrid.Cells.Cell(viewImage.ImageStretch, typeof(bool));
			grid[currentRow, 1].AddController(new SourceGrid.Cells.Controllers.BindProperty(typeof(SourceGrid.Cells.Views.Cell).GetProperty("ImageStretch"), viewImage));

			currentRow++;

			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Text Alignment");
			grid[currentRow, 0].View = captionModel;
			grid[currentRow, 1] = new SourceGrid.Cells.Cell(viewImage.TextAlignment, typeof(DevAge.Drawing.ContentAlignment));
			grid[currentRow, 1].AddController(new SourceGrid.Cells.Controllers.BindProperty(typeof(SourceGrid.Cells.Views.Cell).GetProperty("TextAlignment"), viewImage));

			currentRow++;

			grid[currentRow, 0] = new SourceGrid.Cells.Cell("DrawMode");
			grid[currentRow, 0].View = captionModel;
			grid[currentRow, 1] = new SourceGrid.Cells.Cell(viewImage.ElementsDrawMode, typeof(DevAge.Drawing.ElementsDrawMode));
			grid[currentRow, 1].AddController(new SourceGrid.Cells.Controllers.BindProperty(typeof(SourceGrid.Cells.Views.Cell).GetProperty("ElementsDrawMode"), viewImage));

			currentRow++;


			// Cell VisualModelMultiImages
			grid[currentRow, 1] = new SourceGrid.Cells.Cell("Multi Images");
			SourceGrid.Cells.Views.MultiImages modelMultiImages = new SourceGrid.Cells.Views.MultiImages();
			modelMultiImages.SubImages.Add(new DevAge.Drawing.VisualElements.Image(Properties.Resources.FACE00.ToBitmap()));
			modelMultiImages.SubImages.Add(new DevAge.Drawing.VisualElements.Image(Properties.Resources.FACE01.ToBitmap()));
			modelMultiImages.SubImages.Add(new DevAge.Drawing.VisualElements.Image(Properties.Resources.FACE02.ToBitmap()));
			modelMultiImages.SubImages.Add(new DevAge.Drawing.VisualElements.Image(Properties.Resources.FACE04.ToBitmap()));
			modelMultiImages.SubImages[0].AnchorArea = new DevAge.Drawing.AnchorArea(DevAge.Drawing.ContentAlignment.TopLeft, false);
			modelMultiImages.SubImages[1].AnchorArea = new DevAge.Drawing.AnchorArea(DevAge.Drawing.ContentAlignment.TopRight, false);
			modelMultiImages.SubImages[2].AnchorArea = new DevAge.Drawing.AnchorArea(DevAge.Drawing.ContentAlignment.BottomLeft, false);
			modelMultiImages.SubImages[3].AnchorArea = new DevAge.Drawing.AnchorArea(DevAge.Drawing.ContentAlignment.BottomRight, false);
			modelMultiImages.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleCenter;
			grid[currentRow, 1].View = modelMultiImages;
			grid.Rows[currentRow].AutoSizeMode = SourceGrid.AutoSizeMode.MinimumSize;
			grid.Rows[currentRow].Height = 50;

			currentRow++;


			// Cell Rotated Text
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("Rotated by angle");
			grid[currentRow, 0].View = captionModel;
			grid[currentRow, 1] = new SourceGrid.Cells.Cell("Rotated Text", typeof(string));
			SourceGrid.Cells.Views.Cell rotateView = new SourceGrid.Cells.Views.Cell();
			rotateView.ElementText = new RotatedText(45);
			grid[currentRow, 1].View = rotateView;
			grid.Rows[currentRow].AutoSizeMode = SourceGrid.AutoSizeMode.MinimumSize;
			grid.Rows[currentRow].Height = 50;

			currentRow++;

			// GDI+ Text
			grid[currentRow, 0] = new SourceGrid.Cells.Cell("GDI+ Text");
			grid[currentRow, 0].View = captionModel;
			grid[currentRow, 1] = new SourceGrid.Cells.Cell("Hello from GDI+", typeof(string));
			GDITextView gdiTextView = new GDITextView();
			gdiTextView.FormatFlags = StringFormatFlags.DirectionVertical | StringFormatFlags.NoWrap;
			grid[currentRow, 1].View = gdiTextView;

			currentRow++;
			#endregion


			grid.Columns[0].AutoSizeMode = SourceGrid.AutoSizeMode.MinimumSize | SourceGrid.AutoSizeMode.Default;
			grid.Columns[1].AutoSizeMode = SourceGrid.AutoSizeMode.MinimumSize | SourceGrid.AutoSizeMode.Default;
			grid.Columns[2].AutoSizeMode = SourceGrid.AutoSizeMode.MinimumSize | SourceGrid.AutoSizeMode.Default;
			grid.MinimumWidth = 50;
			grid.AutoSizeCells();
			grid.AutoStretchColumnsToFitWidth = true;
			grid.Columns.StretchToFit();
		}