GrapeCity.Win.CalendarGrid.v20 アセンブリ > GrapeCity.Win.CalendarGrid 名前空間 : CalendarComboBoxCellType クラス |
Public Class CalendarComboBoxCellType Inherits CalendarListCellType
public class CalendarComboBoxCellType : CalendarListCellType
CalendarComboBoxCellType クラスは、コンボボックスコントロールを表示する特別なタイプの CalendarCellType です。ユーザーはコンボボックスのドロップダウンリストから項目を選択することで、セルの値を編集できます。
継承時の注意:
CalendarComboBoxCellType から継承した派生クラスに新しいプロパティを追加するときは、必ず Clone メソッドをオーバーライドして、クローニング操作時に新しいプロパティがコピーされるようにしてください。また、基本クラスの Clone メソッドを呼び出して、基本クラスのプロパティが新しいセルにコピーされるようにしてください。
using System; using System.Drawing; using System.Windows.Forms; using System.Data; using GrapeCity.Win.CalendarGrid; namespace CalendarGridSampleCode { public class ComboBoxCellDemo : Form { private GcCalendarGrid gcCalendarGrid1 = new GcCalendarGrid(); private Label descriptionLable = new Label(); public ComboBoxCellDemo() { this.Text = "ComboBoxCell Demo"; this.Size = new Size(400, 300); // Add GcCalendarGrid to form this.gcCalendarGrid1.Dock = DockStyle.Fill; this.Controls.Add(this.gcCalendarGrid1); descriptionLable.Height = 40; descriptionLable.BackColor = SystemColors.Info; descriptionLable.Dock = DockStyle.Bottom; this.Controls.Add(descriptionLable); this.gcCalendarGrid1.CellEnter += gcCalendarGrid1_CellEnter; this.Load += Form1_Load; } private void Form1_Load(object sender, EventArgs e) { // create a template with 4 combo box cells. CalendarComboBoxCellType unboundComboCell = this.CreateCommonComboBoxCell(); CalendarComboBoxCellType dataBindingComboCell = this.CreateDatabindingComboBoxCell(); CalendarComboBoxCellType autoCompleteComboCell = this.CreateAutoCompleteComboBoxCell(); CalendarComboBoxCellType hiddenDropDownButtonComboCell = this.CreateComboBoxCellHiddenDropDownButton(); this.gcCalendarGrid1.Template = CalendarTemplate.CreateDefaultTemplate(); CalendarListView listView = new CalendarListView(); listView.DayCount = 7; listView.Orientation = Orientation.Vertical; this.gcCalendarGrid1.CalendarView = listView; this.gcCalendarGrid1.Template.ColumnCount = 5; this.gcCalendarGrid1.Template.Content[0, 1].Value = "Common"; this.gcCalendarGrid1.Template.Content[0, 2].Value = "Databinding"; this.gcCalendarGrid1.Template.Content[0, 3].Value = "AutoComplete"; this.gcCalendarGrid1.Template.Content[0, 4].Value = "Hide Button"; this.gcCalendarGrid1.Template.Content[1, 1].CellType = unboundComboCell; this.gcCalendarGrid1.Template.Content[1, 2].CellType = dataBindingComboCell; this.gcCalendarGrid1.Template.Content[1, 3].CellType = autoCompleteComboCell; this.gcCalendarGrid1.Template.Content[1, 4].CellType = hiddenDropDownButtonComboCell; } void gcCalendarGrid1_CellEnter(object sender, CalendarCellMoveEventArgs e) { switch (e.CellPosition.ColumnIndex) { case 1: descriptionLable.Text = "Common combo box cell setting. You can click the cell to show drop down list, and select a item in the list to edit cell"; break; case 2: descriptionLable.Text = "The combo box cell binding to a data table which have two columns 'ID' and 'Name', drop list will lists 'Name', and when you select a item, 'ID' will be stored."; break; case 3: descriptionLable.Text = "When you input some char, the cell will show some recommended values. Try input 'a' or 'b' and watch what happened"; break; case 4: descriptionLable.Text = "Combo box cell hides its drop down button"; break; default: descriptionLable.Text = string.Empty; break; } } CalendarComboBoxCellType CreateCommonComboBoxCell() { CalendarComboBoxCellType comboBoxCell = new CalendarComboBoxCellType(); // The item which listed in drop down window. comboBoxCell.Items.Add("Item2"); comboBoxCell.Items.Add("Item1"); comboBoxCell.Items.Add("Item3"); comboBoxCell.Items.Add("Item4"); comboBoxCell.Items.Add("Long Item to Make Ellipsis Show"); // Sort items. comboBoxCell.Sorted = true; // Drop down window's width, in default, the value is equals to cell's width. comboBoxCell.DropDownWidth = 100; // In non edit status, if text's length bigger than cell's width, EllipsisString will be shown. comboBoxCell.Ellipsis = CalendarGridEllipsisMode.EllipsisEnd; return comboBoxCell; } CalendarComboBoxCellType CreateDatabindingComboBoxCell() { DataTable dataTable = this.CreatDataTable(); CalendarComboBoxCellType comboBoxCell = new CalendarComboBoxCellType(); // Binding items to a data source. comboBoxCell.DataSource = dataTable; // The column "Name" of data source will be use to display in the drop down list. comboBoxCell.DisplayMember = "Name"; // When user select a value, the corresponding "ID" will be save as cell's value. comboBoxCell.ValueMember = "ID"; return comboBoxCell; } private DataTable CreatDataTable() { DataTable dataTable = new DataTable(); dataTable.Columns.Add("ID", typeof(int)); dataTable.Columns.Add("Name", typeof(string)); dataTable.Rows.Add(0, "Barry"); dataTable.Rows.Add(1, "Colin"); dataTable.Rows.Add(2, "Robert"); dataTable.Rows.Add(3, "Walter"); dataTable.Rows.Add(4, "Wedy"); return dataTable; } CalendarComboBoxCellType CreateAutoCompleteComboBoxCell() { CalendarComboBoxCellType comboBoxCell = new CalendarComboBoxCellType(); comboBoxCell.DropDownStyle = CalendarGridComboBoxStyle.DropDown; comboBoxCell.AutoCompleteMode = AutoCompleteMode.SuggestAppend; comboBoxCell.AutoCompleteSource = AutoCompleteSource.CustomSource; string[] customSourceItems = new string[] { "aaa", "bbb", "ccc", "ddd" }; comboBoxCell.AutoCompleteCustomSource.AddRange(customSourceItems); comboBoxCell.Items.Add("(none)"); comboBoxCell.Items.Add("aaa"); comboBoxCell.Items.Add("bbb"); comboBoxCell.Items.Add("ccc"); comboBoxCell.Items.Add("ddd"); return comboBoxCell; } CalendarComboBoxCellType CreateComboBoxCellHiddenDropDownButton() { CalendarComboBoxCellType comboBoxCell = new CalendarComboBoxCellType(); comboBoxCell.DropDownStyle = CalendarGridComboBoxStyle.DropDown; // Hide drop down button when non edit status. comboBoxCell.ShowDropDownButton = CalendarCellButtonVisibility.NotShown; comboBoxCell.Items.Add("Item1"); comboBoxCell.Items.Add("Item2"); return comboBoxCell; } [STAThreadAttribute()] public static void Main() { Application.EnableVisualStyles(); Application.Run(new ComboBoxCellDemo()); } } }
Imports System.Drawing Imports System.Windows.Forms Imports System.Data Imports GrapeCity.Win.CalendarGrid Namespace CalendarGridSampleCode Public Class ComboBoxCellDemo Inherits Form Private gcCalendarGrid1 As New GcCalendarGrid() Private descriptionLable As New Label() Public Sub New() Me.Text = "ComboBoxCell Demo" Me.Size = New Size(400, 300) ' Add GcCalendarGrid to form Me.gcCalendarGrid1.Dock = DockStyle.Fill Me.Controls.Add(Me.gcCalendarGrid1) descriptionLable.Height = 40 descriptionLable.BackColor = SystemColors.Info descriptionLable.Dock = DockStyle.Bottom Me.Controls.Add(descriptionLable) AddHandler Me.gcCalendarGrid1.CellEnter, AddressOf gcCalendarGrid1_CellEnter AddHandler Me.Load, AddressOf Form1_Load End Sub Private Sub Form1_Load(sender As Object, e As EventArgs) ' create a template with 4 combo box cells. Dim unboundComboCell As CalendarComboBoxCellType = Me.CreateCommonComboBoxCell() Dim dataBindingComboCell As CalendarComboBoxCellType = Me.CreateDatabindingComboBoxCell() Dim autoCompleteComboCell As CalendarComboBoxCellType = Me.CreateAutoCompleteComboBoxCell() Dim hiddenDropDownButtonComboCell As CalendarComboBoxCellType = Me.CreateComboBoxCellHiddenDropDownButton() Me.gcCalendarGrid1.Template = CalendarTemplate.CreateDefaultTemplate() Dim listView As New CalendarListView() listView.DayCount = 7 listView.Orientation = Orientation.Vertical Me.gcCalendarGrid1.CalendarView = listView Me.gcCalendarGrid1.Template.ColumnCount = 5 Me.gcCalendarGrid1.Template.Content(0, 1).Value = "Common" Me.gcCalendarGrid1.Template.Content(0, 2).Value = "Databinding" Me.gcCalendarGrid1.Template.Content(0, 3).Value = "AutoComplete" Me.gcCalendarGrid1.Template.Content(0, 4).Value = "Hide Button" Me.gcCalendarGrid1.Template.Content(1, 1).CellType = unboundComboCell Me.gcCalendarGrid1.Template.Content(1, 2).CellType = dataBindingComboCell Me.gcCalendarGrid1.Template.Content(1, 3).CellType = autoCompleteComboCell Me.gcCalendarGrid1.Template.Content(1, 4).CellType = hiddenDropDownButtonComboCell End Sub Private Sub gcCalendarGrid1_CellEnter(sender As Object, e As CalendarCellMoveEventArgs) Select Case e.CellPosition.ColumnIndex Case 1 descriptionLable.Text = "Common combo box cell setting. You can click the cell to show drop down list, and select a item in the list to edit cell" Exit Select Case 2 descriptionLable.Text = "The combo box cell binding to a data table which have two columns 'ID' and 'Name', drop list will lists 'Name', and when you select a item, 'ID' will be stored." Exit Select Case 3 descriptionLable.Text = "When you input some char, the cell will show some recommended values. Try input 'a' or 'b' and watch what happened" Exit Select Case 4 descriptionLable.Text = "Combo box cell hides its drop down button" Exit Select Case Else descriptionLable.Text = String.Empty Exit Select End Select End Sub Private Function CreateCommonComboBoxCell() As CalendarComboBoxCellType Dim comboBoxCell As New CalendarComboBoxCellType() ' The item which listed in drop down window. comboBoxCell.Items.Add("Item2") comboBoxCell.Items.Add("Item1") comboBoxCell.Items.Add("Item3") comboBoxCell.Items.Add("Item4") comboBoxCell.Items.Add("Long Item to Make Ellipsis Show") ' Sort items. comboBoxCell.Sorted = True ' Drop down window's width, in default, the value is equals to cell's width. comboBoxCell.DropDownWidth = 100 ' In non edit status, if text's length bigger than cell's width, EllipsisString will be shown. comboBoxCell.Ellipsis = CalendarGridEllipsisMode.EllipsisEnd Return comboBoxCell End Function Private Function CreateDatabindingComboBoxCell() As CalendarComboBoxCellType Dim dataTable As DataTable = Me.CreatDataTable() Dim comboBoxCell As New CalendarComboBoxCellType() ' Binding items to a data source. comboBoxCell.DataSource = dataTable ' The column "Name" of data source will be use to display in the drop down list. comboBoxCell.DisplayMember = "Name" ' When user select a value, the corresponding "ID" will be save as cell's value. comboBoxCell.ValueMember = "ID" Return comboBoxCell End Function Private Function CreatDataTable() As DataTable Dim dataTable As New DataTable() dataTable.Columns.Add("ID", GetType(Integer)) dataTable.Columns.Add("Name", GetType(String)) dataTable.Rows.Add(0, "Barry") dataTable.Rows.Add(1, "Colin") dataTable.Rows.Add(2, "Robert") dataTable.Rows.Add(3, "Walter") dataTable.Rows.Add(4, "Wedy") Return dataTable End Function Private Function CreateAutoCompleteComboBoxCell() As CalendarComboBoxCellType Dim comboBoxCell As New CalendarComboBoxCellType() comboBoxCell.DropDownStyle = CalendarGridComboBoxStyle.DropDown comboBoxCell.AutoCompleteMode = AutoCompleteMode.SuggestAppend comboBoxCell.AutoCompleteSource = AutoCompleteSource.CustomSource Dim customSourceItems As String() = New String() {"aaa", "bbb", "ccc", "ddd"} comboBoxCell.AutoCompleteCustomSource.AddRange(customSourceItems) comboBoxCell.Items.Add("(none)") comboBoxCell.Items.Add("aaa") comboBoxCell.Items.Add("bbb") comboBoxCell.Items.Add("ccc") comboBoxCell.Items.Add("ddd") Return comboBoxCell End Function Private Function CreateComboBoxCellHiddenDropDownButton() As CalendarComboBoxCellType Dim comboBoxCell As New CalendarComboBoxCellType() comboBoxCell.DropDownStyle = CalendarGridComboBoxStyle.DropDown ' Hide drop down button when non edit status. comboBoxCell.ShowDropDownButton = CalendarCellButtonVisibility.NotShown comboBoxCell.Items.Add("Item1") comboBoxCell.Items.Add("Item2") Return comboBoxCell End Function <STAThreadAttribute> _ Public Shared Sub Main() Application.EnableVisualStyles() Application.Run(New ComboBoxCellDemo()) End Sub End Class End Namespace
System.Object
GrapeCity.Win.CalendarGrid.CalendarCellType
GrapeCity.Win.CalendarGrid.CalendarListCellType
GrapeCity.Win.CalendarGrid.CalendarComboBoxCellType