728x90
반응형
728x170
▶ MainForm.cs
using System;
using System.Drawing;
using System.Windows.Forms;
using Steema.TeeChart;
using Steema.TeeChart.Drawing;
using Steema.TeeChart.Styles;
using Steema.TeeChart.Tools;
namespace TestProject
{
/// <summary>
/// 메인 폼
/// </summary>
public partial class MainForm : Form
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Field
////////////////////////////////////////////////////////////////////////////////////////// Private
#region Field
/// <summary>
/// 캔들
/// </summary>
private Candle candle;
/// <summary>
/// 피보나시 도구
/// </summary>
private FibonacciTool fibonacciTool;
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - MainForm()
/// <summary>
/// 생성자
/// </summary>
public MainForm()
{
InitializeComponent();
this.startPointIndexNumericUpDown.Value = 0;
this.endPointIndexNumericUpDown.Value = 10;
this.arcStyleComboBox.DropDownStyle = ComboBoxStyle.DropDownList;
this.arcStyleComboBox.Items.Add("Arc" );
this.arcStyleComboBox.Items.Add("Fan lines" );
this.arcStyleComboBox.Items.Add("Retracement");
this.arcStyleComboBox.SelectedIndex = 0;
this.showLevelLabelCheckBox.Checked = true;
Text = "FibonacciTool 클래스 사용하기";
this.tChart.Panel.Pen = new ChartPen(Color.Black);
this.tChart.Zoom.Direction = ZoomDirections.None;
this.candle = new Candle(this.tChart.Chart);
this.candle.FillSampleValues();
this.fibonacciTool = new FibonacciTool(this.tChart.Chart);
this.fibonacciTool.Series = this.candle;
this.fibonacciTool.StartX = this.candle.DateValues[0];
this.fibonacciTool.StartY = this.candle.CloseValues[0];
this.fibonacciTool.EndX = this.candle.DateValues[10];
this.fibonacciTool.EndY = this.candle.CloseValues[10];
this.trendLineButtonPen.Pen = this.fibonacciTool.TrendPen;
this.startPointIndexNumericUpDown.ValueChanged += startPointIndexNumericUpDown_ValueChanged;
this.endPointIndexNumericUpDown.ValueChanged += endPointIndexNumericUpDown_ValueChanged;
this.arcStyleComboBox.SelectedIndexChanged += arcStyleComboBox_SelectedIndexChanged;
this.tChart.MouseDown += tChart_MouseDown;
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Private
#region 시작 포인트 인덱스 숫자 UP/DOWN 값 변경시 처리하기 - startPointIndexNumericUpDown_ValueChanged(sender, e)
/// <summary>
/// 시작 포인트 인덱스 숫자 UP/DOWN 값 변경시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void startPointIndexNumericUpDown_ValueChanged(object sender, EventArgs e)
{
this.fibonacciTool.StartX = this.candle.DateValues [(int)this.startPointIndexNumericUpDown.Value];
this.fibonacciTool.StartY = this.candle.CloseValues[(int)this.startPointIndexNumericUpDown.Value];
}
#endregion
#region 종료 포인트 인덱스 숫자 UP/DOWN 값 변경시 처리하기 - endPointIndexNumericUpDown_ValueChanged(sender, e)
/// <summary>
/// 종료 포인트 인덱스 숫자 UP/DOWN 값 변경시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void endPointIndexNumericUpDown_ValueChanged(object sender, EventArgs e)
{
this.fibonacciTool.EndX = this.candle.DateValues [(int)this.endPointIndexNumericUpDown.Value];
this.fibonacciTool.EndY = this.candle.CloseValues[(int)this.endPointIndexNumericUpDown.Value];
}
#endregion
#region 원호 콤보 박스 선택 인덱스 변경시 처리하기 - arcStyleComboBox_SelectedIndexChanged(sender, e)
/// <summary>
/// 원호 콤보 박스 선택 인덱스 변경시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void arcStyleComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
this.fibonacciTool.DrawStyle = (FibonacciStyle)this.arcStyleComboBox.SelectedIndex;
}
#endregion
#region 레벨 레이블 표시 체크 박스 체크 변경시 처리하기 - showLevelLabelCheckBox_CheckedChanged(sender, e)
/// <summary>
/// 레벨 레이블 표시 체크 박스 체크 변경시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void showLevelLabelCheckBox_CheckedChanged(object sender, EventArgs e)
{
this.fibonacciTool.ShowLabels = this.showLevelLabelCheckBox.Checked;
}
#endregion
#region TChart 마우스 DOWN 처리하기 - tChart_MouseDown(sender, e)
/// <summary>
/// TChart 마우스 DOWN 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void tChart_MouseDown(object sender, MouseEventArgs e)
{
if(this.fibonacciTool.Clicked(e.X, e.Y))
{
MessageBox.Show("피보나시를 클릭했습니다!");
}
}
#endregion
}
}
728x90
반응형
그리드형(광고전용)
'TeeChart > WinForm' 카테고리의 다른 글
[TEECHART/WINFORM] TChart 클래스 : Axes 속성을 사용해 축을 확대하기 (0) | 2022.03.30 |
---|---|
[TEECHART/WINFORM] TChart 클래스 : Axes 속성을 사용해 축 오른쪽으로 스크롤하기 (0) | 2022.03.30 |
[TEECHART/WINFORM] TChart 클래스 : Axes 속성을 사용해 축 왼쪽으로 스크롤하기 (0) | 2022.03.30 |
[TEECHART/WINFORM] GanttTool 클래스 : 간트 차트에서 마우스 드래그 사용하기 (0) | 2022.03.30 |
[TEECHART/WINFORM] FullScreenTool 클래스 : 전체 화면 사용하기 (0) | 2022.03.30 |
[TEECHART/WINFORM] FaderTool 클래스 사용하기 (0) | 2022.03.30 |
[TEECHART/WINFORM] ExtraLegend 클래스 : 추가 레전드 표시하기 (0) | 2022.03.30 |
[TEECHART/WINFORM] DrawLine 클래스 : EscapeKey 속성을 사용해 신규 라인 생성 취소하기 (0) | 2022.03.30 |
[TEECHART/WINFORM] DrawLine 클래스 : Select/DraggedLine 이벤트를 사용해 라인 드래그하기 (0) | 2022.03.30 |
[TEECHART/WINFORM] DrawLine 클래스 : 라인 그리기 (0) | 2022.03.30 |
댓글을 달아 주세요