2
我正在使用C#为excel 2010加载插件。我有一个现有的工作表,它有一些控件,即一个组合框。我正在尝试编写一些代码,这些代码将在组合框的文本属性中放置一定的值,但我很难访问该控件来执行此操作。C#excel插件 - 访问控件
组合框被命名为 'ComboBox1' 但如果我尝试类似...
var combo = Controls["ComboBox1"];
我得到一个ArgumentOutOfRangeException。
寻找我应该做的事情的探索性方法也没有真正提供有用的信息。例如,如果要写;
MessageBox.Show(Controls[0].GetType())
显示的消息是'NamedRangeImpl',它根本不像一个控件。所以我的问题是,如何从我的代码访问我的工作表上的控件?
您是否将其添加为窗体控件或ActiveX控件?如果它是一个ActiveX控件,请尝试'ActiveSheet.OLEObjects(“ComboBox1”)。object.value =“foo”' – Banjoe
好问题。我没有制作表格,但我会发现什么是什么。 –
你可以尝试循环一些像'foreach(控件中的Control c)MessageBox.Show(c.GetType()。ToString());'看看它的输出是什么。 –