MESCIUS SPREAD for Windows Forms 17.0J > 開発者ガイド > セル型 > 編集可能なセル型 > 日付時刻型セル > ポップアップカレンダー |
このトピックでは、日付時刻型セルからポップアップされるカレンダーおよびクロックコントロールについて解説します。InputManセルのGcDateTime型セルのカレンダーについては「ドロップダウンカレンダー(GcDateTime型セル) 」をご参照ください。
編集モードで[F4]キーを押すか、または日付時刻型セルをダブルクリックすると、ポップアップカレンダー(またはポップアップクロック)が表示されます。DateTimeCellTypeクラスのDateTimeFormatプロパティを「TimeOnly」以外の形式に設定している場合、カレンダーコントロールが表示されます。「TimeOnly」に設定している場合、クロックコントロールが表示されます。カレンダーから選択した日付(またはクロックから選択した時刻)は、日付時刻型セルに入力されます。現在の日付を表示するには、カレンダーコントロールの[今日]をクリックします。現在の時刻を表示するには、クロックコントロールの[現在時刻]をクリックします。
ポップアップ カレンダー コントロール | ポップアップ クロック コントロール |
---|---|
日と月の名前には、通常の名前と短縮名を設定できます。また、コントロール下部の各ボタンに使用するテキストも指定できます。 これらを設定するには、DateTimeCellTypeクラスのSetCalendarTextメソッドを使用します。
ボタン内のテキストは、中央揃えで表示されることに注意してください。また、ボタンテキストは8または9文字以内に収めるようにしてください。ボタンには最大10文字を表示できますが、この場合、先頭および末尾の文字とボタンの端との間の余白がなくなってしまいます。
これらのコントロールの使用中は、〈OK〉または〈キャンセル〉ボタンのクリックのみによってコントロールを閉じることができます。〈今日〉または〈現在時刻〉ボタンは、現在の日付値または時刻値をセル内に設定するだけです。日付時刻型セルの書式には、DateTimeFormat列挙体の値を設定します。
DateTimeCellTypeクラスのインスタンスを作成して、クラスのプロパティを使用してボタンのテキスト、曜日および月の名前を設定します。セルに設定する場合はCellクラスの、行に設定する場合はRowクラスの、列に設定する場合はColumnクラスの、あるいはスタイルに設定する場合はStyleInfoクラスのCellTypeプロパティに、定義したDateTimeCellTypeクラスのインスタンスを割り当てます。
次のサンプルコードは、ボタンのテキストを設定し、日と月の名前を配列で指定します。
C# |
コードのコピー
|
---|---|
FarPoint.Win.Spread.CellType.DateTimeCellType datecell = new FarPoint.Win.Spread.CellType.DateTimeCellType(); string[] daynames = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; string[] months = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}; string[] dayabbrev = {"Su","My","Ty","Wy","Th","Fy","Sy"}; string[] mthabbrev = {"Jy","Fy","Mh","Al","My","Jn","Jl","At","Sr","Or","Nr","Dr"}; string okbuttn = "Fine"; string cancelb = "Quit"; datecell.DateTimeFormat = FarPoint.Win.Spread.CellType.DateTimeFormat.UserDefined; datecell.UserDefinedFormat = "dddd MMMM d, yyyy"; datecell.SetCalendarText(daynames,months,dayabbrev,mthabbrev,okbuttn, cancelb); fpSpread1.ActiveSheet.Cells[1, 1].CellType = datecell; fpSpread1.ActiveSheet.Cells[1, 1].Value = System.DateTime.Now; fpSpread1.ActiveSheet.Columns[1].Width = 130; |
Visual Basic |
コードのコピー
|
---|---|
Dim datecell As New FarPoint.Win.Spread.CellType.DateTimeCellType() Dim daynames() As String = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" } Dim months() As String = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"} Dim dayabbrev() As String = {"Su","My","Ty","Wy","Th","Fy","Sy"} Dim mthabbrev() As String = {"Jy","Fy","Mh","Al","My","Jn","Jl","At","Sr","Or","Nr","Dr"} Dim okbuttn As String = "Fine" Dim cancelb As String = "Quit" datecell.DateTimeFormat = FarPoint.Win.Spread.CellType.DateTimeFormat.UserDefined datecell.UserDefinedFormat = "dddd MMMM d, yyyy" datecell.SetCalendarText(daynames,months,dayabbrev,mthabbrev,okbuttn, cancelb) FpSpread1.ActiveSheet.Cells(1, 1).CellType = datecell FpSpread1.ActiveSheet.Cells(1, 1).Value = System.DateTime.Now FpSpread1.ActiveSheet.Columns(1).Width = 130 |