作成日: 2023/10/01 最終更新日: 2024/01/17
文書種別
不具合
状況
修正済み
詳細
複数の子フォームを持つMDIアプリケーションで、子フォームにFlexChartのラインマーカーを追加したとき、子フォーム同士が重なると、最前面にある他の子フォーム上にラインマーカーが表示されてしまいます。
回避方法
この問題は2023J v3(4.6.20233.631)で修正されました。
※修正版を適用しない場合の回避方法は以下の通りです。
FlexChartが配置してある子フォームがアクティブのときのみ、ラインマーカーを表示します。
以下に、子フォームのコード設定例を記載します。
◎サンプルコード(VB)
※修正版を適用しない場合の回避方法は以下の通りです。
FlexChartが配置してある子フォームがアクティブのときのみ、ラインマーカーを表示します。
以下に、子フォームのコード設定例を記載します。
◎サンプルコード(VB)
Public Class ChildForm1
Dim lineMarker
Private Sub ChildForm1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' データの作成
Dim dt As New DataTable()
dt.Columns.Add("ContentID", GetType(Int32))
dt.Columns.Add("Value", GetType(Int32))
dt.Rows.Add(1, 80)
dt.Rows.Add(2, 110)
dt.Rows.Add(3, 120)
dt.Rows.Add(4, 70)
dt.AcceptChanges()
FlexChart1.ChartType = C1.Chart.ChartType.Column
FlexChart1.DataSource = dt
FlexChart1.Binding = "Value"
FlexChart1.BindingX = "ContentID"
lineMarker = New C1.Win.Chart.Interaction.LineMarker(Me.FlexChart1)
lineMarker.Lines = C1.Win.Chart.Interaction.LineMarkerLines.Both
lineMarker.LineColor = Color.Red
End Sub
Protected Overrides Sub OnActivated(e As EventArgs)
MyBase.OnActivated(e)
lineMarker.Visible = True
End Sub
Protected Overrides Sub OnDeactivate(e As EventArgs)
MyBase.OnDeactivate(e)
lineMarker.Visible = False
End Sub
End Class
◎サンプルコード(C#)
namespace prj_C1FlexChart
{
public partial class ChildForm1 : Form
{
C1.Win.Chart.Interaction.LineMarker lineMarker;
public ChildForm1()
{
InitializeComponent();
// データの作成
DataTable dt = new DataTable();
dt.Columns.Add("ContentID", typeof(Int32));
dt.Columns.Add("Value", typeof(Int32));
dt.Rows.Add(1, 80);
dt.Rows.Add(2, 110);
dt.Rows.Add(3, 120);
dt.Rows.Add(4, 70);
dt.AcceptChanges();
flexChart1.ChartType = C1.Chart.ChartType.Column;
flexChart1.DataSource = dt;
flexChart1.Binding = "Value";
flexChart1.BindingX = "ContentID";
lineMarker = new C1.Win.Chart.Interaction.LineMarker(this.flexChart1);
lineMarker.Lines = C1.Win.Chart.Interaction.LineMarkerLines.Both;
lineMarker.LineColor = Color.Red;
}
protected override void OnActivated(EventArgs e)
{
base.OnActivated(e);
lineMarker.Visible = true;
}
protected override void OnDeactivate(EventArgs e)
{
base.OnDeactivate(e);
lineMarker.Visible = false;
}
}
}