您的位置:首页 > 其它

使用Word中的CheckBox,探索属性/方法

2006-05-19 15:37 441 查看
第一次使用CheckBox的时候,无论如何都没有办法得到CheckBox的值(true或者false)
刚开始猜测的语法如下:
myCheckBox.Value ,可惜一看Value的类型为Object,然后我把它ToString()也是徒劳:(

然后根据编译器提供的信息:
属性、索引器或事件“Value”不受该语言支持;请尝试直接调用访问器方法“Microsoft.Vbe.Interop.Forms.IMdcCheckBox.get_Value()”或“Microsoft.Vbe.Interop.Forms.IMdcCheckBox.set_Value(ref object)”

然后就敲入get_,然后智能感知(Ctrl+J, .net2003环境下)并得不到任何帮助,只好全部写上,编译一下,哈哈,可以编译通过,看来微软现在并没有完全的把这些控件的属性全部封装完。

最终得到这个值了,如下代码:
if(Boolean.Parse(myCheckBox.get_Value().ToString()))
{
MessageBox.Show("OK");
}

另外,我想看看
using Office = Microsoft.Office.Core;
using Word = Microsoft.Office.Interop.Word;
using MSForms = Microsoft.Vbe.Interop.Forms;
这三个命名空间下到底有什么东东,可惜我的MSDN没有安装这些,哪个可以提供一下相关的补丁包

下边列出CheckBox的几个
重要属性
myCheckBox.Caption ; // CheckBox 显示的名称 string
myCheckBox.Enabled ; // CheckBox 是否可用 bool
myCheckBox.GroupName; // CheckBox 组设置 string
myCheckBox.Locked ; // CheckBox 被锁定,不允许选择 bool
myCheckBox.MultiSelect // CheckBox可以多选 fmMultiSelect
myCheckBox.Value // CheckBox 是否被选中 object

重要的事件
myCheckBox.Change += new MSForms.MdcCheckBoxEvents_ChangeEventHandler(myCheckBox_Change);

文章来源:http://www.cnblogs.com/koffer/archive/2004/09/25/46668.html

在参考了上面的代码后,我的问题是这样解决的:
prjBusinessRules.b_SemiIn bSemiIn =Factory.GetBSemiIn();
prjCommon.c_SemiIn cSemiIn=bSemiIn.GetSemiInByRollNo(rollNo);
if(cSemiIn.get_ICommon_Data().RecordCount==0) {
throw new Exception("当前带子入库单中不存在卷号为:" + rollNo + "的记录!");
}
cSemiIn.get_ICommon_Data().Fields[cSemiIn.Processing].Value=processing;
bSemiIn.IntoStocksForWaiting(ref cSemiIn,place,qualityid,beltStatus,remark);

另外我发现,这种问题是由于C#的索引器当参数为值类型是应该是传值的操作,而如果COM组件中的类的属性是以传址形式的就会出现这种问题.遇到这种问题自己写的类当然可以将属性修改一下,比如:
public proeprty let MyProperty(byval tvalue as string)
'your code
end property

但是对于非自已编写的类库中的属性就只能使用上文的方法了.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: