2017-09-29 1 views
0

こんにちは私は現在、システムのUIのperosonとして、DateTimePickerコントロールの使用を含むプロジェクトに取り組んでいます。 ) "ので、どの画面サイズでもコントロールが調整されますが、CalendarTimeの新しいサイズを継承していないときは、初期化後のランタイムでdateTimePIckerのカレンダーをドロップダウンするまで、またはそうではありません本当に何が起こっているか知っていますので、ウィンドウサイズの変更について私は、ドロップダウンカレンダーにdateTimePickerと同じ幅を持たせて、数式で高さを構成します。 ところで:私のDateTimePickerは、上、左、右にアンカーされているので、幅が変わります。私のコードで :私のデザインでC#telerik Winforms DateTimePicker Calendarサイズ

private void ResizeDateTimePicker() 
    { 
     int dtpCurrWidth = this.dateTimePicker.Size.Width; 
     int dtpCurrHeight = dtpCurrWidth - (dtpCurrWidth/2); 
     ((Telerik.WinControls.UI.RadDateTimePickerElement)(this.dateTimePicker.GetChildAt(0))).CalendarSize = new System.Drawing.Size(dtpCurrWidth, 200); 
     //I change the Calendar Size of the DateTimePicker with this code because this is how telerik change the CalendarSize in Design View 
    } 

ここ代わりに私はただその分このような最大サイズを変更することができ、カレンダーのサイズを変更するの溶液を、見つけた
  this.dateTimePicker.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
     | System.Windows.Forms.AnchorStyles.Right))); 
     this.dateTimePicker.BackColor = System.Drawing.SystemColors.ControlLightLight; 
     this.dateTimePicker.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Bold); 
     this.dateTimePicker.Location = new System.Drawing.Point(79, 28); 
     this.dateTimePicker.Name = "dateTimePicker"; 
     this.dateTimePicker.Size = new System.Drawing.Size(377, 37); 
     this.dateTimePicker.TabIndex = 0; 
     this.dateTimePicker.TabStop = false; 
     this.dateTimePicker.Text = "Friday, September 7, 2012"; 
     this.dateTimePicker.ThemeName = "Material"; 
     this.dateTimePicker.SizeChanged += new System.EventHandler(this.dateTimePicker_sizeChanged); 
     this.dateTimePicker.Value = new System.DateTime(2012, 9, 7, 0, 0, 0, 0); 
     ((Telerik.WinControls.Primitives.FillPrimitive)(this.dateTimePicker.GetChildAt(0).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; 
     ((Telerik.WinControls.UI.RadMaskedEditBoxElement)(this.dateTimePicker.GetChildAt(0).GetChildAt(2).GetChildAt(1))).Text = "Friday, September 7, 2012"; 
     ((Telerik.WinControls.UI.RadTextBoxItem)(this.dateTimePicker.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).Alignment = System.Drawing.ContentAlignment.MiddleLeft; 

答えて

0

public partial class Form1 : Form 
{ 
public Form1() 
{ 
    InitializeComponent(); 

    this.radDateTimePicker1.SizeChanged += RadDateTimePicker1_SizeChanged; 
} 

private void RadDateTimePicker1_SizeChanged(object sender, EventArgs e) 
{ 
    int width = this.radDateTimePicker1.Width; 
    int height = 300;//calculate it according to your formula 
    Size desiredSize = new Size(width, height); 

    RadDateTimePickerCalendar cal = this.radDateTimePicker1.DateTimePickerElement.GetCurrentBehavior() as RadDateTimePickerCalendar; 
    // Control popup size 
    cal.DropDownMinSize = desiredSize; 
    cal.DropDownMaxSize = desiredSize; 
} 

}

関連する問題