作成日: 2014/08/05 最終更新日: 2014/08/05
文書種別
使用方法
詳細
C1GanttViewのShowDialogイベントを使用して、組み込みダイアログを独自のダイアログに変更することができます。
下記サンプルでは、「TaskInfoDialog」という名前のフォームに、cbTaskという名のコンボボックス、およびtbTaskName、tbResource、tbStart、tbDuration、tbPercentCompleteという名前のTextBoxを配置し、TaskInfoDialogクラスに下記コードを記載して、これを独自のダイアログとして表示させています。
◆サンプルコード(VB)
Public Partial Class Form1
Inherits Form
Public Sub New()
InitializeComponent()
End Sub
Private Sub c1GanttView1_ShowDialog(sender As Object, e As C1.Win.C1GanttView.ShowDialogEventArgs)
Dim dlg As New TaskInfoDialog(c1GanttView1)
e.Dialog = dlg
End Sub
End Class
Imports C1.Win.C1GanttView
Public Partial Class TaskInfoDialog
Inherits Form
Private _ganttView As C1GanttView
Private _selectedTask As Task
Public Sub New()
InitializeComponent()
End Sub
Public Sub New(ganttView As C1GanttView)
Me.New()
_ganttView = ganttView
End Sub
Private Sub TaskInfoDialog_Load(sender As Object, e As EventArgs)
Dim tasks As New List(Of Task)()
Dim taskColl As TaskCollection = _ganttView.Tasks
For Each task As Task In taskColl
If Not String.IsNullOrEmpty(task.Name) Then
tasks.Add(task)
End If
Next
cbTask.DataSource = tasks
cbTask.DisplayMember = "Name"
cbTask.SelectedItem = _ganttView.SelectedTask
End Sub
Private Sub cbTask_SelectedIndexChanged(sender As Object, e As EventArgs)
_selectedTask = DirectCast(cbTask.SelectedValue, Task)
tbTaskName.Text = _selectedTask.Name
tbResource.Text = _selectedTask.ResourceNames
tbStart.Text = _selectedTask.Start.Value.ToShortDateString()
tbDuration.Text = _selectedTask.GetDurationInDays() & " day(s)"
tbPercentComplete.Text = (_selectedTask.PercentComplete * 100).ToString("0.00")
End Sub
End Class
◆サンプルコード(C#)
namespace CustomTaskInfoDialog
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void c1GanttView1_ShowDialog(object sender, C1.Win.C1GanttView.ShowDialogEventArgs e)
{
TaskInfoDialog dlg = new TaskInfoDialog(c1GanttView1);
e.Dialog = dlg;
}
}
}
using C1.Win.C1GanttView;
namespace CustomTaskInfoDialog
{
public partial class TaskInfoDialog : Form
{
private C1GanttView _ganttView;
private Task _selectedTask;
public TaskInfoDialog()
{
InitializeComponent();
}
public TaskInfoDialog(C1GanttView ganttView)
: this()
{
_ganttView = ganttView;
}
private void TaskInfoDialog_Load(object sender, EventArgs e)
{
List tasks = new List();
TaskCollection taskColl = _ganttView.Tasks;
foreach (Task task in taskColl)
{
if (!string.IsNullOrEmpty(task.Name))
{
tasks.Add(task);
}
}
cbTask.DataSource = tasks;
cbTask.DisplayMember = "Name";
cbTask.SelectedItem = _ganttView.SelectedTask;
}
private void cbTask_SelectedIndexChanged(object sender, EventArgs e)
{
_selectedTask = (Task)cbTask.SelectedValue;
tbTaskName.Text = _selectedTask.Name;
tbResource.Text = _selectedTask.ResourceNames;
tbStart.Text = _selectedTask.Start.Value.ToShortDateString();
tbDuration.Text = _selectedTask.GetDurationInDays() + " day(s)";
tbPercentComplete.Text = (_selectedTask.PercentComplete * 100).ToString("0.00");
}
}
}
下記サンプルでは、「TaskInfoDialog」という名前のフォームに、cbTaskという名のコンボボックス、およびtbTaskName、tbResource、tbStart、tbDuration、tbPercentCompleteという名前のTextBoxを配置し、TaskInfoDialogクラスに下記コードを記載して、これを独自のダイアログとして表示させています。
◆サンプルコード(VB)
Public Partial Class Form1
Inherits Form
Public Sub New()
InitializeComponent()
End Sub
Private Sub c1GanttView1_ShowDialog(sender As Object, e As C1.Win.C1GanttView.ShowDialogEventArgs)
Dim dlg As New TaskInfoDialog(c1GanttView1)
e.Dialog = dlg
End Sub
End Class
Imports C1.Win.C1GanttView
Public Partial Class TaskInfoDialog
Inherits Form
Private _ganttView As C1GanttView
Private _selectedTask As Task
Public Sub New()
InitializeComponent()
End Sub
Public Sub New(ganttView As C1GanttView)
Me.New()
_ganttView = ganttView
End Sub
Private Sub TaskInfoDialog_Load(sender As Object, e As EventArgs)
Dim tasks As New List(Of Task)()
Dim taskColl As TaskCollection = _ganttView.Tasks
For Each task As Task In taskColl
If Not String.IsNullOrEmpty(task.Name) Then
tasks.Add(task)
End If
Next
cbTask.DataSource = tasks
cbTask.DisplayMember = "Name"
cbTask.SelectedItem = _ganttView.SelectedTask
End Sub
Private Sub cbTask_SelectedIndexChanged(sender As Object, e As EventArgs)
_selectedTask = DirectCast(cbTask.SelectedValue, Task)
tbTaskName.Text = _selectedTask.Name
tbResource.Text = _selectedTask.ResourceNames
tbStart.Text = _selectedTask.Start.Value.ToShortDateString()
tbDuration.Text = _selectedTask.GetDurationInDays() & " day(s)"
tbPercentComplete.Text = (_selectedTask.PercentComplete * 100).ToString("0.00")
End Sub
End Class
◆サンプルコード(C#)
namespace CustomTaskInfoDialog
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void c1GanttView1_ShowDialog(object sender, C1.Win.C1GanttView.ShowDialogEventArgs e)
{
TaskInfoDialog dlg = new TaskInfoDialog(c1GanttView1);
e.Dialog = dlg;
}
}
}
using C1.Win.C1GanttView;
namespace CustomTaskInfoDialog
{
public partial class TaskInfoDialog : Form
{
private C1GanttView _ganttView;
private Task _selectedTask;
public TaskInfoDialog()
{
InitializeComponent();
}
public TaskInfoDialog(C1GanttView ganttView)
: this()
{
_ganttView = ganttView;
}
private void TaskInfoDialog_Load(object sender, EventArgs e)
{
List
TaskCollection taskColl = _ganttView.Tasks;
foreach (Task task in taskColl)
{
if (!string.IsNullOrEmpty(task.Name))
{
tasks.Add(task);
}
}
cbTask.DataSource = tasks;
cbTask.DisplayMember = "Name";
cbTask.SelectedItem = _ganttView.SelectedTask;
}
private void cbTask_SelectedIndexChanged(object sender, EventArgs e)
{
_selectedTask = (Task)cbTask.SelectedValue;
tbTaskName.Text = _selectedTask.Name;
tbResource.Text = _selectedTask.ResourceNames;
tbStart.Text = _selectedTask.Start.Value.ToShortDateString();
tbDuration.Text = _selectedTask.GetDurationInDays() + " day(s)";
tbPercentComplete.Text = (_selectedTask.PercentComplete * 100).ToString("0.00");
}
}
}
関連情報
旧文書番号
80909