当前位置:  开发笔记 > 编程语言 > 正文

使用CSLA在C#.NET中禁用TextBox

如何解决《使用CSLA在C#.NET中禁用TextBox》经验,为你挑选了1个好方法。

我试图在我的一个UserControls中禁用一些用于显示数据(而不是编辑)的文本框.但是,由于某种原因,我无法正确禁用textBoxes.

我将"readAuthorization on readWriteAuthorization"设置为true,textBoxes被数据绑定为正确的属性.

我还在CanWriteProperty我的对象中添加了以下行:

if (propertyName == OpeningDateProperty.Name) return false;
if (propertyName == ChangeDateProperty.Name) return false;
if (propertyName == CloseDateProperty.Name) return false;
return base.CanWriteProperty(propertyName);

我无法弄清楚我在这里做错了什么.我最近在其他UserControls中实现了几乎相同的东西,没有任何问题......

我在C#.NET中使用Windows窗体(Visual Studio 2008)

编辑:代码片段和属性取自我的客户对象.日期表示客户帐户的开立,最后更改和关闭.它们永远不应该被编辑,实际上在旧的sollution中它们由textLabels表示,但是我们现在想要使用文本框并使属性的CanWriteProperty为false.

我意识到信息可能有点稀缺,但我正在寻找在这个过程中我可能忘记的东西.

编辑:我们也在使用CSLA,我猜(我对这件事情我是新手)这与我们想要这样做的原因有关.

编辑(Sollution):正如您在下面的答案中所看到的,问题是我没有CurrentItemChanged像我应该那样设置事件.



1> PhilChuang..:

如果您试图让它们只读,那么只需将.ReadOnly属性设置为true即可.

或者,如果您从未使用过这些文本框进行编辑,那么可能只需使用Label?

编辑: 啊,它似乎更多的是一个CSLA框架问题,而不是一个纯粹的窗体问题.在这个问题之前我从未听说过CSLA,但它看起来很有趣.

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有