我喜欢 WarrenG 对下拉事件的想法。如果这可行,那似乎很理想。否则,我建议使用工作簿的 Sheet_Activate 事件。这在创建或删除工作表时触发,至少如果它是由用户完成的。
在 C# 中,您需要实例化事件并创建处理程序。您实际上可以在 Form_Load 事件中执行此操作,以便在实例化表单时创建事件处理程序。您需要设置对 Interop.Excel 的引用,以便您的 Form.cs 代码如下所示:
因此,您的 Form_Load 事件看起来像这样:
using Excel = Microsoft.Office.Interop.Excel;
namespace ExcelWorkbook1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Globals.ThisWorkbook.SheetActivate +=
new Excel.WorkbookEvents_SheetActivateEventHandler(
ThisWorkbook_SheetActivate);
}
private void ThisWorkbook_SheetActivate(object Sh)
{
//Fill your combobox here
}
}
}
编辑:我在这个 MSDN 站点找到了基本代码。