変なトピック名で申し訳ありませんが、他に名前を付ける方法がわかりません。

問題は.. zedgraph コントロールがあります。内側に線が引かれています。
チャート エリアの左端とチャート エリアの右端の座標があります。
zedgraph コントロール上で PictureBoxes として垂直線を描画するため、異なる座標で移動します。この縦線は左右に移動できます。
そのようにして、XAxis の座標で X 値を取得しようとしています:
public double Get_X_InContextOfChart(int left_coord_of_border) //Left of vertical line
{
    //zed_graph.GraphPane.XAxis.Scale.Min is minimal X value shown on XAxis
    //zed_graph.GraphPane.Chart.Rect.Left is Left of YAxis
    //Same for else if, aside of using Right and maximum X at right
    if (zed_graph.GraphPane.XAxis.Scale.Min != 0) //to avoid division by zero
        return (left_coord_of_border * zed_graph.GraphPane.XAxis.Scale.Min) / zed_graph.GraphPane.Chart.Rect.Left;
    else if (zed_graph.GraphPane.XAxis.Scale.Max != 0)
        return (left_coord_of_border * zed_graph.GraphPane.XAxis.Scale.Max) / zed_graph.GraphPane.Chart.Rect.Right;
    return double.NaN;
}
このコードは、使用されている場合は X を正常に計算しますが、私の例では何か間違った計算をしています。
誰かがこれを理解してくれることを願っています。
新しいコードで更新:
public double Get_X_InContextOfChart(int left_coord_of_border)
{
   double scale_left = zed_graph.GraphPane.XAxis.Scale.Min;
   double scale_right = zed_graph.GraphPane.XAxis.Scale.Max;
   double graph_width = zed_graph.GraphPane.Chart.Rect.Width;
   double x = left_coord_of_border;
   return scale_left + (scale_right - scale_left) / graph_width * x;
}
結果:
