作成日: 2022/05/10 最終更新日: 2022/05/10
文書種別
制限事項
発生環境
ComponentOne 2017J v2以降
状況
回避方法あり
詳細
C1CalendarViewを配置したフォームでGcResizeコンポーネント(*)を使用した場合、フォームを通常サイズから最大化した後に再度通常サイズに変更すると、C1CalendarViewのサイズが不正になります。
(*)PlusPak for Windows Formsに含まれます。
GcResizeがCalendarView for WinFormsをサポートしていないためで、本現象は制限事項になります。
※PlusPakで動作確認済の製品はComponentOne 2017J v1ですが、C1CalendarViewは2017J v2でComponentOneに追加されたコンポーネントなので、GcResizeのサポート対象外となります。
(*)PlusPak for Windows Formsに含まれます。
GcResizeがCalendarView for WinFormsをサポートしていないためで、本現象は制限事項になります。
※PlusPakで動作確認済の製品はComponentOne 2017J v1ですが、C1CalendarViewは2017J v2でComponentOneに追加されたコンポーネントなので、GcResizeのサポート対象外となります。
回避方法
C1CalendarViewのサイズを変更しないように制御します。以下は、制御するためにResizeProricyを用いる例です。
1.NoResizeFontResizePolicyを継承したクラスを生成する
2.CanResizeプロパティをオーバーライドしfalseを返却する
3.CanResizeChildrenプロパティをオーバーライドしfalseを返却する
4.作成したクラスをGcresizeのResizePoliciesリストに追加する
◎サンプルコード(VB)
なお、サポート対象外となりますが、以下の設定でも改善する可能性があります。
(A) C1CalendarViewのAutoSizeプロパティをAutoに設定:
(B) C1CalendarViewコントロールに追加される「GcResize1のAllowResizeプロパティ」をFalseに設定:
設計画面でC1CalendarViewコントロールを選択し、プロパティウィンドウで上記の値を設定します。
1.NoResizeFontResizePolicyを継承したクラスを生成する
2.CanResizeプロパティをオーバーライドしfalseを返却する
3.CanResizeChildrenプロパティをオーバーライドしfalseを返却する
4.作成したクラスをGcresizeのResizePoliciesリストに追加する
◎サンプルコード(VB)
Imports C1.Win.Calendar
Imports GrapeCity.Win.Components
Namespace WindowsApp1
Public Class C1CalendarViewResize
Inherits NoResizeFontResizePolicy
Public Overrides ReadOnly Property TargetType As Type
Get
Return GetType(C1CalendarView)
End Get
End Property
Public Overrides Function CanResize(ByVal control As System.Windows.Forms.Control) As Boolean
Return False
End Function
Public Overrides Function CanResizeChildren(ByVal control As System.Windows.Forms.Control) As Boolean
Return False
End Function
End Class
End Namespace
◎サンプルコード(C#)
using C1.Win.Calendar;
using GrapeCity.Win.Components;
using System;
namespace C1CalendarViewResizePolicy
{
public class C1CalendarViewResize : NoResizeFontResizePolicy
{
public override Type TargetType
{
get { return typeof(C1CalendarView); }
}
public override bool CanResize(System.Windows.Forms.Control control)
{
return false;
}
public override bool CanResizeChildren(System.Windows.Forms.Control control)
{
return false;
}
}
}
なお、サポート対象外となりますが、以下の設定でも改善する可能性があります。
(A) C1CalendarViewのAutoSizeプロパティをAutoに設定:
c1CalendarView1.AutoSize = true;
(B) C1CalendarViewコントロールに追加される「GcResize1のAllowResizeプロパティ」をFalseに設定:
設計画面でC1CalendarViewコントロールを選択し、プロパティウィンドウで上記の値を設定します。