作成日: 2020/09/11 最終更新日: 2020/09/11
文書種別
使用方法
詳細
C1GanttViewツールバーの「並べ替え」ボタンをクリックすると並べ替えダイアログが表示され、名前順/開始日順、昇順/降順など、複数項目を用いたソートを指定できますが、このダイアログをカスタマイズする方法は用意されておりません。
なお、System.ComponentModのPropertyDescriptorCollectionとTypeDescriptorを使用して、コードによりソート機能を指定し、並べ替えダイアログにこのソート設定内容を反映させることは可能です。
以下に、並べ替えダイアログを以下のように設定するコードを記載します。
・「並べ替え」項目の名前を「タスク」にし「昇順」でソート
・「複数キーによる並べ替え」項目の名前を「期間」にし「降順」でソート
◎サンプルコード(VB)
なお、System.ComponentModのPropertyDescriptorCollectionとTypeDescriptorを使用して、コードによりソート機能を指定し、並べ替えダイアログにこのソート設定内容を反映させることは可能です。
以下に、並べ替えダイアログを以下のように設定するコードを記載します。
・「並べ替え」項目の名前を「タスク」にし「昇順」でソート
・「複数キーによる並べ替え」項目の名前を「期間」にし「降順」でソート
◎サンプルコード(VB)
Imports System.ComponentModel
Imports C1.Win.C1GanttView
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
C1GanttView1.Tasks(0).Start = DateTime.Today
C1GanttView1.Tasks(0).Finish = DateTime.Today.AddDays(7)
C1GanttView1.Tasks(0).Name = "TaskA"
C1GanttView1.Tasks(0).PercentComplete = 0.5
C1GanttView1.Tasks(1).Start = DateTime.Today.AddDays(7)
C1GanttView1.Tasks(1).Finish = DateTime.Today.AddDays(10)
C1GanttView1.Tasks(1).Name = "TaskB"
C1GanttView1.Tasks(1).PercentComplete = 0.5
Dim [property] As PropertyDescriptorCollection = TypeDescriptor.GetProperties(C1GanttView1.Tasks(0))
Dim myProperty As PropertyDescriptor = [property].Find("Name", False)
Dim myProperty1 As PropertyDescriptor = [property].Find("Duration", False)
Dim comparer As TaskComparer = New TaskComparer()
comparer.AddPropertyComparerInfo(myProperty, ListSortDirection.Ascending)
comparer.AddPropertyComparerInfo(myProperty1, ListSortDirection.Descending)
C1GanttView1.SortTasks(comparer)
End Sub
End Class
◎サンプルコード(C#)using System.ComponentModel;
using C1.Win.C1GanttView;
namespace prj_C1GanttView
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
c1GanttView1.Tasks[0].Start = DateTime.Today;
c1GanttView1.Tasks[0].Finish = DateTime.Today.AddDays(7);
c1GanttView1.Tasks[0].Name = "TaskA";
c1GanttView1.Tasks[0].PercentComplete = 0.5;
c1GanttView1.Tasks[1].Start = DateTime.Today.AddDays(7);
c1GanttView1.Tasks[1].Finish = DateTime.Today.AddDays(10);
c1GanttView1.Tasks[1].Name = "TaskB";
c1GanttView1.Tasks[1].PercentComplete = 0.5;
PropertyDescriptorCollection property = TypeDescriptor.GetProperties(c1GanttView1.Tasks[0]);
PropertyDescriptor myProperty = property.Find("Name", false);
PropertyDescriptor myProperty1 = property.Find("Duration", false);
TaskComparer comparer = new TaskComparer();
comparer.AddPropertyComparerInfo(myProperty, ListSortDirection.Ascending);
comparer.AddPropertyComparerInfo(myProperty1, ListSortDirection.Descending);
c1GanttView1.SortTasks(comparer);
}
}
}
関連情報
旧文書番号
85990