演练:使用单选按钮更新工作表中的图表

本演练演示了在 Microsoft 办公室 Excel 工作表上使用单选按钮的基础知识,使用户能够快速切换选项。 在这种情况下,这些选项将更改图表的样式。

适用于: 本主题中的信息适用于 Excel 的文档级项目。 有关详细信息,请参阅办公室应用程序和项目类型提供的功能。

若要查看结果作为已完成的示例,请参阅办公室开发示例和演练中的 Excel 控件示例。

本演练阐释了以下任务:

  • 向工作表添加一组单选按钮。

  • 在选择了某个选项时更改图表样式。

注意

以下说明中的某些 Visual Studio 用户界面元素在计算机上出现的名称或位置可能会不同。 这些元素取决于你所使用的 Visual Studio 版本和你所使用的设置。 有关详细信息,请参阅个性化设置 Visual Studio IDE

先决条件

你需要满足以下条件才能完成本演练:

向工作表添加图表

可以创建自定义现有工作簿的 Excel 工作簿项目。 在本演练中,你将向工作簿添加图表,然后在新的 Excel 解决方案中使用此工作簿。 本演练中的数据源是名为 Data for Chart 的工作表。

添加数据

  1. 打开 Microsoft Excel。

  2. 右键单击 Sheet3 选项卡,然后单击快捷菜单上的“ 重命名 ”。

  3. 将工作表重命名为 图表的数据。

  4. 将以下数据添加到 图表 的数据中,单元格 A4 是左上角,右下角为 E8。

    区域/季度 Q1 Q2 第三季度 第 4 季度
    West 500 550 550 600
    东部 600 625 675 700
    北部 450 470 490 510
    南部 800 750 775 790

    接下来,将图表添加到第一个工作表以显示数据。

在 Excel 中添加图表

  1. “插入”选项卡上的“图表”组中,单击“列,然后单击“所有图表类型”。

  2. “插入图表 ”对话框中,单击“ 确定”。

  3. “设计 ”选项卡上的 “数据 ”组中,单击“ 选择数据”。

  4. “选择数据源 ”对话框中,单击“ 图表数据范围 ”框并清除任何默认选择。

  5. “图表 数据”工作表中,选择包含数字的单元格块,其中包括右上角的 A4 到右下角的 E8。

  6. “选择数据源 ”对话框中,单击“ 确定”。

  7. 重新定位图表,使右上角与单元格 E2 对齐。

  8. 将文件保存到驱动器 C 并将其命名为 ExcelChart.xlsx

  9. 退出 Excel。

创建新项目

在此步骤中,将基于 ExcelChart 工作簿创建 Excel 工作簿项目。

创建新项目

  1. 创建名为“我的 Excel 图表的 Excel 工作簿项目。 在向导中,选择“ 复制现有文档”。

    有关详细信息,请参阅“如何:在 Visual Studio 中创建办公室项目。

  2. 单击“浏览”按钮并浏览到本演练前面创建的工作簿。

  3. 单击“确定”。

    Visual Studio 在设计器中打开新的 Excel 工作簿,并将“我的 Excel 图表”项目添加到解决方案资源管理器

设置图表的属性

创建新的使用现有工作簿的 Excel 工作簿项目时,将自动为工作簿中的所有命名区域、列表对象和图表创建主机控件。 可以使用“属性”窗口更改控件的名称Chart

更改图表控件的名称

  1. 选择Chart设计器中的控件,并在“属性”窗口中更改以下属性

    属性
    Name dataChart
    HasLegend false

添加控件

此工作表使用单选按钮为用户提供快速更改图表样式的方法。 但是,单选按钮需要独占 -- 选择一个按钮时,无法同时选择组中的任何其他按钮。 将多个单选按钮添加到工作表时,默认情况下不会发生此行为。

添加此行为的一种方法是将用户控件上的单选按钮分组,在用户控件后面编写代码,然后将用户控件添加到工作表。

要添加用户控件

  1. 解决方案资源管理器中选择“我的 Excel 图表”项目。

  2. “项目” 菜单上,单击 “添加新项”

  3. “添加新项 ”对话框中,单击“ 用户控件”,将控件 命名为 ChartOptions, 然后单击“ 添加”。

向用户控件添加单选按钮

  1. 如果用户控件在设计器中不可见,请在解决方案资源管理器双击 ChartOptions

  2. 从工具箱“常用控件”选项卡中,将单选按钮控件拖动到用户控件,并更改以下属性。

    属性
    Name columnChart
    文本 柱形图
  3. 将第二个单选按钮添加到用户控件,并更改以下属性。

    属性
    Name barChart
    文本 条形图
  4. 将第三个单选按钮添加到用户控件,并更改以下属性。

    属性
    Name lineChart
    文本 折线图
  5. 将第四个单选按钮添加到用户控件,并更改以下属性。

    属性
    Name areaBlockChart
    文本 面积块图

    接下来,编写代码以在单击单选按钮时更新图表。

选择单选按钮时更改图表样式

现在,可以添加代码来更改图表样式。 为此,请在用户控件上创建一个公共事件,添加一个属性来设置选择类型,并为每个单选按钮的事件创建事件处理程序 CheckedChanged

创建用户控件的事件和属性

  1. 解决方案资源管理器中,右键单击用户控件,然后单击“查看代码”。

  2. 将代码添加到 ChartOptions 类以创建 SelectionChanged 事件和 Selection 属性。

    public event EventHandler SelectionChanged;
    
    private Microsoft.Office.Interop.Excel.XlChartType selectedType =
        Microsoft.Office.Interop.Excel.XlChartType.xlColumnClustered;
    
    public Microsoft.Office.Interop.Excel.XlChartType Selection
    {
        get
        {
            return this.selectedType;
        }
        set
        {
            this.selectedType = value;
        }
    }
    

处理单选按钮的 CheckedChanged 事件

  1. 设置 CheckedChanged 单选按钮的 areaBlockChart 事件处理程序中的图表类型,然后引发事件。

    private void areaBlockChart_CheckedChanged(object sender, EventArgs e)
    {
        if (((RadioButton)sender).Checked)
        {
            this.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlAreaStacked;
            if (this.SelectionChanged != null)
            {
                this.SelectionChanged(this, EventArgs.Empty);
            }
        }
    }
    
  2. 设置 CheckedChanged 单选按钮的 barChart 事件处理程序中的图表类型。

    private void barChart_CheckedChanged(object sender, EventArgs e)
    {
        if (((RadioButton)sender).Checked)
        {
            this.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlBarClustered;
            if (this.SelectionChanged != null)
            {
                this.SelectionChanged(this, EventArgs.Empty);
            }
        }
    }
    
  3. 设置 CheckedChanged 单选按钮的 columnChart 事件处理程序中的图表类型。

    private void columnChart_CheckedChanged(object sender, EventArgs e)
    {
        if (((RadioButton)sender).Checked)
        {
            this.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlColumnClustered;
            if (this.SelectionChanged != null)
            {
                this.SelectionChanged(this, EventArgs.Empty);
            }
        }
    }
    
  4. 设置 CheckedChanged 单选按钮的 lineChart 事件处理程序中的图表类型。

    private void lineChart_CheckedChanged(object sender, EventArgs e)
    {
        if (((RadioButton)sender).Checked)
        {
            this.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlLineMarkers;
            if (this.SelectionChanged != null)
            {
                this.SelectionChanged(this, EventArgs.Empty);
            }
        }
    }
    
  5. 在 C# 中,必须为单选按钮添加事件处理程序。 可以将此代码添加到 ChartOptions 构造函数中 InitializeComponent 调用的下面。 有关如何创建事件处理程序的信息,请参阅如何:在办公室项目中创建事件处理程序。

    public ChartOptions()
    {
        InitializeComponent();
    
        areaBlockChart.CheckedChanged += new EventHandler(areaBlockChart_CheckedChanged);
        barChart.CheckedChanged += new EventHandler(barChart_CheckedChanged);
        columnChart.CheckedChanged += new EventHandler(columnChart_CheckedChanged);
        lineChart.CheckedChanged += new EventHandler(lineChart_CheckedChanged);
    }
    

将用户控件添加到工作表

生成解决方案时,新用户控件会自动添加到 工具箱中。 然后,可以将控件从 工具箱 拖动到工作表。

添加用户控件工作表

  1. “生成” 菜单上,单击 “生成解决方案”

    ChartOptions 用户控件将添加到工具箱中。

  2. 解决方案资源管理器中,右键单击 Sheet1.vbSheet1.cs,然后单击“视图设计器”。

  3. ChartOptions 控件从 工具箱 拖到工作表。

    名为 my_Excel_Chart_ChartOptions1 的新控件将添加到项目中。

  4. 将控件的名称更改为 ChartOptions1

更改图表类型

若要更改图表类型,请创建一个事件处理程序,该事件处理程序根据用户控件中选择的选项设置样式。

更改工作表中显示的图表类型

  1. 将以下事件处理程序添加到 Sheet1 类。

    private void ChartOptions1_SelectionChanged(object sender, EventArgs e)
    {
        try
        {
            dataChart.ChartType = this.ChartOptions1.Selection;
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }
    
  2. 在 C# 中,必须将用户控件的事件处理程序添加到事件, Startup 如下所示。 有关如何创建事件处理程序的信息,请参阅如何:在办公室项目中创建事件处理程序。

    this.ChartOptions1.SelectionChanged += new EventHandler(ChartOptions1_SelectionChanged);
    

测试应用程序

现在可以测试工作簿,以验证选择单选按钮时图表的样式是否正确。

测试工作簿

  1. F5 运行项目。

  2. 选择不同的单选按钮。

  3. 确认图表样式随所选选项发生了相应的更改。

后续步骤

本演练演示了在工作表上使用单选按钮和图表样式的基础知识。 以下是接下来可能要执行的一些任务:

  • 部署项目。 有关详细信息,请参阅部署办公室解决方案

  • 使用按钮填充文本框。 有关详细信息,请参阅 演练:使用按钮在工作表中的文本框中显示文本。

  • 使用检查框更改工作表的格式。