Calendarコントロールで日付を単一選択に設定したとき、既に選択された日付をクリックすることで選択解除する方法はありますか?
対象製品
InputMan for .NET 3.0J
詳細
SelectionModeをOneに設定すると、既に選択された日付をクリックしても選択解除されません。
このような動作を実現するには、SelectionModeをMultiSimpleにし、SelectedDateChangedイベントで、次のように実装します。
【サンプルコード】
[VB.NET]
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Calendar1.SelectionMode = SelectionMode.MultiSimple
End Sub
Private Sub Calendar1_SelectedDateChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Calendar1.SelectedDateChanged
If Calendar1.Selections.Count > 1 Then
Calendar1.Selections.RemoveAt(0)
End If
End Sub
[C#]
private void Form1_Load(object sender, System.EventArgs e)
{
calendar1.SelectionMode = GrapeCity.Win.Input.SelectionMode.MultiSimple;
}
private void calendar1_SelectedDateChanged(object sender, System.EventArgs e)
{
if( calendar1.Selections.Count > 1 )
{
calendar1.Selections.RemoveAt(0);
}
}
このような動作を実現するには、SelectionModeをMultiSimpleにし、SelectedDateChangedイベントで、次のように実装します。
【サンプルコード】
[VB.NET]
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Calendar1.SelectionMode = SelectionMode.MultiSimple
End Sub
Private Sub Calendar1_SelectedDateChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Calendar1.SelectedDateChanged
If Calendar1.Selections.Count > 1 Then
Calendar1.Selections.RemoveAt(0)
End If
End Sub
[C#]
private void Form1_Load(object sender, System.EventArgs e)
{
calendar1.SelectionMode = GrapeCity.Win.Input.SelectionMode.MultiSimple;
}
private void calendar1_SelectedDateChanged(object sender, System.EventArgs e)
{
if( calendar1.Selections.Count > 1 )
{
calendar1.Selections.RemoveAt(0);
}
}
この文書は、以前は次のFAQ IDで公開されていました : 7578