Forex_Strategy_Builder.Bar_Explorer.Navigate C# (CSharp) Method

Navigate() private method

Navigates to a bar.
private Navigate ( string sDir ) : void
sDir string
return void
        void Navigate(string sDir)
        {
            switch (sDir)
            {
                case "< !":
                    for (int i = bar - 1; i >= Data.FirstBar; i--)
                        if (Backtester.BackTestEval(i) == "Ambiguous")
                        {
                            bar = i;
                            break;
                        }
                    break;
                case "<":
                    if (bar > Data.FirstBar)
                        bar--;
                    break;
                case "! >":
                    for (int i = bar + 1; i < Data.Bars; i++)
                        if (Backtester.BackTestEval(i) == "Ambiguous")
                        {
                            bar = i;
                            break;
                        }
                    break;
                case ">":
                    if (bar < Data.Bars - 1)
                        bar++;
                    break;
                case "Go":
                    bar = (int)nudGo.Value - 1;
                    break;
                default:
                    break;
            }

            SetBtnNavigate();

            barInfo = Language.T("Bar") + ": " + (bar + 1).ToString() +
                    " " + Data.Time[bar].ToString(Data.DF) +
                    " " + Data.Time[bar].ToString("HH:mm") + "; " +
                    Language.T("Interpolation method") + ": " +
                    Backtester.InterpolationMethodToString();

            Rectangle rectPnlChart = new Rectangle(border, infoRowHeight, pnlChart.ClientSize.Width - 2 * border, pnlChart.ClientSize.Height - infoRowHeight - border);
            pnlChart.Invalidate(rectPnlChart);

            Rectangle rectPnlInfo = new Rectangle(border, 2 * infoRowHeight, pnlInfo.ClientSize.Width - 2 * border, pnlInfo.ClientSize.Height - 2 * infoRowHeight - border);
            pnlInfo.Invalidate(rectPnlInfo);

            nudGo.Value = bar + 1;

            return;
        }