逐步解說:使用選項按鈕更新工作表中的圖表

本逐步解說說明在 Microsoft Office Excel 工作表上使用單選按鈕的基本概念,讓用戶能夠快速切換選項。 在此情況下,選項會變更圖表的樣式。

適用於: 本主題中的資訊適用於 Excel 的文件層級專案。 如需詳細資訊,請參閱 Office 應用程式 lication 和項目類型所提供的功能。

若要查看結果為已完成的範例,請參閱 Office 開發範例和逐步解說中的 Excel 控件範例。

本逐步解說將說明下列工作:

  • 將單選按鈕群組新增至工作表。

  • 當選取選項時變更圖表樣式。

注意

在下列指示的某些 Visual Studio 使用者介面項目中,您的電腦可能會顯示不同的名稱或位置: 您所擁有的 Visual Studio 版本以及使用的設定會決定這些項目。 如需詳細資訊,請參閱將 Visual Studio IDE 個人化

必要條件

您需要下列元件才能完成這個逐步解說:

將圖表新增至工作表

您可以建立可自定義現有活頁簿的 Excel 活頁簿專案。 在本逐步解說中,您會將圖表新增至活頁簿,然後在新的 Excel 方案中使用此活頁簿。 本逐步解說中的數據源是名為 Data for Chart 的工作表。

加入數據

  1. 開啟 Microsoft Excel。

  2. 以滑鼠右鍵按下 Sheet3 索引標籤,然後按下快捷方式選單上的 [ 重新命名 ]。

  3. 將工作表重新命名為 Chart 的數據。

  4. 將下列數據新增至 圖表 的數據,其中 A4 單元格為左上角,而 E8 則為右下角。

    Region / Quarter Q1 Q2 Q3 Q4
    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. 建立名稱 為 My Excel Chart 的 Excel 活頁簿專案。 在精靈中,選取 [ 複製現有的檔]。

    如需詳細資訊,請參閱 如何:在Visual Studio中建立 Office專案。

  2. 按兩下 [ 瀏覽] 按鈕,並流覽至您稍早在本逐步解說中建立的活頁簿。

  3. 按一下 [確定]

    Visual Studio 會在設計工具中開啟新的 Excel 活頁簿,並將 [我的 Excel 圖表] 專案新增方案總管

設定圖表的屬性

當您建立使用現有活頁簿的新 Excel 活頁簿專案時,會自動為活頁簿中的所有具名範圍、清單物件和圖表建立主控件。 您可以使用 [屬性] 視窗來變更控制件的名稱Chart

變更圖表控件的名稱

  1. Chart選取設計工具中的控制件,然後在 [屬性視窗] 中變更下列屬性。

    屬性
    名稱 dataChart
    HasLegend false

新增控制項

此工作表會使用單選按鈕讓使用者快速變更圖表樣式。 不過,單選按鈕必須是獨佔的,當選取一個按鈕時,群組中無法同時選取其他按鈕。 當您將數個單選按鈕新增至工作表時,預設不會發生此行為。

新增此行為的其中一種方式是將使用者控件上的單選按鈕分組、在使用者控件後面撰寫程式代碼,然後將使用者控件新增至工作表。

若要加入使用者控制項

  1. 方案總管選取 [我的 Excel 圖表] 專案。

  2. 在 [專案] 功能表上,按一下 [加入新項目]

  3. 在 [ 新增專案 ] 對話框中,按兩下 [ 使用者控件],將控件 命名為 ChartOptions, 然後按兩下 [ 新增]。

將單選按鈕新增至使用者控制件

  1. 如果設計工具中看不到使用者控件,請按兩下 方案總管中的ChartOptions

  2. 從 [工具箱] 的 [通用控件] 索引標籤,將單選按鈕控件拖曳至使用者控件,然後變更下列屬性。

    屬性
    名稱 columnChart
    Text 柱形圖
  3. 將第二個單選按鈕新增至使用者控件,並變更下列屬性。

    屬性
    名稱 barChart
    Text 條形圖
  4. 將第三個單選按鈕新增至使用者控件,並變更下列屬性。

    屬性
    名稱 lineChart
    Text 折線圖
  5. 將第四個單選按鈕新增至使用者控件,並變更下列屬性。

    屬性
    名稱 areaBlockChart
    Text 分區塊圖

    接下來,撰寫程式代碼,以在單擊單選按鈕時更新圖表。

選取單選按鈕時變更圖表樣式

現在您可以新增程式代碼來變更圖表樣式。 若要這樣做,請在使用者控件上建立公用事件、新增 屬性來設定選取類型,併為每個單選按鈕的事件建立事件處理程式 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 的呼叫下方。 如需如何建立事件處理程式的詳細資訊,請參閱 如何:在 Office 專案中建立事件處理程式。

    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 如下所示。 如需如何建立事件處理程式的詳細資訊,請參閱 如何:在 Office 專案中建立事件處理程式。

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

測試應用程式

您現在可以測試活頁簿,以確認圖表在選取單選按鈕時已正確設定樣式。

測試您的活頁簿

  1. F5 執行您的專案。

  2. 選取不同的選項按鈕。

  3. 確認圖表樣式的變更與所選的項目相符。

下一步

本逐步解說示範在工作表上使用單選按鈕和圖表樣式的基本概念。 接著可以執行下列一些工作: