c# - 在 Excel 电子表格中以编程方式在 C# 中创建复选框

标签 c# excel

作为我正在进行的项目的一部分,我需要能够在 Excel 电子表格中创建复选框,任何人都可以提供一个简单的示例或指导我找到有用的引用吗? 我正在使用 excel Interop。

提前致谢。

最佳答案

您可以在工作表上放置两种控件,控件工具箱中的 ActiveX 控件和窗体(或绘图)工具栏中的窗体控件。

一般来说,这两种控件的相似之处在于它们的工作方式相同。也就是说,绘图工具栏中的文本框是一个可以在其中键入文本的控件。这与 ActiveX 文本框基本相同。任一类型的复选框都用于选择或取消选择一个选项。

显然,使用其中一个的决定将基于它们的差异,而不是它们的相似性。无论如何,对我来说,主要区别在于事件和格式。在显示控件事件或对控件事件作出 react 时,ActiveX 控件为电子表格设计人员提供了更多的灵 active 。查看 ActiveX 控件的属性可以证明使用它们比使用 Forms 控件可以做更多的事情。此外,Forms 控件有一个基本事件,即单击事件,您可以通过将宏分配给控件来访问该事件。另一方面,ActiveX 控件有很多事件。例如,ActiveX 组合框有十五个事件。

所有这些灵 active 都是有代价的(您知道会这样)。 ActiveX 控件带来更多的开销,并且有错误的历史。

权衡利弊,我总是使用 Forms 控件,除非我有特定的理由使用 ActiveX。表单控件简洁明了且易于使用。但是,如果我需要一个组合框来显示某种字体,我别无选择,只能使用 ActiveX 控件。同样,如果我需要避免文本框中的某些字符,我将需要 KeyPress 事件,而该事件在表单文本框中不可用。因此,我的建议和实践是使用 Forms 控件,除非我需要只有 ActiveX 控件才能提供的功能。

Forms Checkbox 添加代码

 ActiveSheet.CheckBoxes.Add 87, 18, 72, 17.25

ActiveX复选框添加代码

    ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
    DisplayAsIcon:=False, Left:=69.75, Top:=59.25, Width:=117.75, Height _
    :=14.25)

此代码是 VBA,但可以通过互操作从 .Net 轻松调用

关于c# - 在 Excel 电子表格中以编程方式在 C# 中创建复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1140005/

相关文章:

excel - 似乎无法使用条件格式隐藏跟随的超链接

Excel VBA 输入框 - 选择范围(类型 8),但不是固定范围,即 A1 不是 $A$1

c# - .Find 方法能否在多用户环境中返回错误结果

c# - 如何使用基于代码的配置在 Entity Framework 6 中设置连接

c# - CanExecute() 返回 true 并且按钮仍然被禁用

Excel 根据上面的行切换行条件突出显示

javascript - "Can' t 将多个参数绑定(bind)到web api和angularJs中的请求's content."

c# - 如何在 Webview2 中使用透明度?

java - 使用 Apache POI 创建 excel 图表

excel - 在 MS Excel 中找到行中第一个非 n/a 值