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

如果我正确理解了您的问题,这是我通过单个 ButtonClick 事件更新 Zedgraph Axis Titles 的简单代码。

 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 回答