作为我正在进行的项目的一部分,我需要能够在 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/