0

私はこの機能を持っています:

public void MainFormLoad(object sender, EventArgs e)
{
   GraphPane myPane = GRAPH.GraphPane;
}

myPane は GraphPane への参照です (GRAPH は GUI に表示される ZedGraphControl の名前です) そして今、「x」または「y」軸の名前、タイトル、色などを変更したいと思います。または変更できるものは何でも、イベントに基づいています。例: テキストを書き込むことができるテキスト ボックスがあり、このテキストは、次のように textbox_textchanged_event トリガーの後にタイトルとしてグラフに表示されます。

void TitleTextChanged(object sender, EventArgs e)
{
   myPane.Title.Text = textbox1.Text;
} 

グラフのプロパティを変更するために、このような関数がさらにあります。しかし、これは機能していません。これを回避する方法はありますか?
私もこれを試しました:

void TitleTextChanged(object sender, EventArgs e)
{
   GRAPH.GraphPane.Title.Text = textbox1.text.Text;
} 

しかし、まったく助けにはなりません。助けてください、どんなアドバイスも大歓迎です。

**回答:これまでのところ、この解決策を見つけました:

public void MainFormLoad(object sender, EventArgs e)
{
    EditGraph(GRAPH);

}

これは、テキスト ボックス内のテキストの変更を処理するイベントです。

public void TB_GRAPH_TITLE_VALUETextChanged(object sender, EventArgs e)
{
    //GraphPane myPane2 = GRAPH.GraphPane;
    changedGraphTitle = true;
    EditGraph(GRAPH);           
}

これは、変更されたものを見つけて更新する関数です。

public void EditGraph(ZedGraphControl zgc)
{
    GraphPane myPane = zgc.GraphPane;
    if(changedGraphTitle)
    {
       myPane.Title.Text =  TB_GRAPH_TITLE_VALUE.Text;
       changedGraphTitle = false;   
       zgc.Refresh();
    }
}

「bool changedGraphTitle = false」も宣言する必要があります。**

4

1 に答える 1

1

あなたの質問を正しく理解していれば、Zedgraph Axis Titles を単一の ButtonClick イベントで更新する簡単なコードを次に示します。

 using System;
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.Data;
 using System.Drawing;
 using System.Linq;
 using System.Text;
 using System.Windows.Forms;
 using ZedGraph;

 namespace updateZedGraph
 {
    public partial class Form1 : Form
    {
      public Form1()
      {
        InitializeComponent();
        myPane = zedGraphControl1.GraphPane;
      }

      GraphPane myPane; 

      private void btn_UpdateChart_Click(object sender, EventArgs e)
      {
        // Update x Axis Text
        myPane.XAxis.Title.Text = textBox1.Text;

        // Update x Axis Text
        myPane.YAxis.Title.Text = textBox2.Text;

        // Refresh Chart
        zedGraphControl1.Invalidate();
      }
  }
}

ここに画像の説明を入力

それが役立つことを願っています..

于 2013-06-17T16:14:26.577 に答える