找回密码
 立即注册

QQ登录

只需一步,快速开始

sesan

高级会员

25

主题

103

帖子

1061

积分

高级会员

积分
1061

微信认证勋章

sesan
高级会员   /  发表于:2019-9-16 20:08  /   查看:3364  /  回复:7
1金币


如图 我使用了各种对象的IsVisible属性等于false 都无效 应该如何隐藏和显示?

附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

7 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-9-17 00:33:40
沙发

可以用下面的代码来实现

  1. foreach (Leadtools.Annotations.Engine.AnnObject obj in cell.AutomationContainer.Children)
  2.                 {
  3.                     obj.IsVisible = false;
  4.                 }
复制代码
回复 使用道具 举报
sesan
高级会员   /  发表于:2019-9-17 09:08:51
板凳
你这代码有用? 回帖之前能自己试一下吗?我帖子里面都说了如图 我使用了各种对象的IsVisible属性等于false都无效 你还发IsVisible?
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-9-17 09:12:02
地板
当然是经过验证的。这个代码在WINFORM 程序中是完全没有问题的,你那边用的是html5吗?
回复 使用道具 举报
sesan
高级会员   /  发表于:2019-9-17 09:28:54
5#
Richard.Ma 发表于 2019-9-17 09:12
当然是经过验证的。这个代码在WINFORM 程序中是完全没有问题的,你那边用的是html5吗?

我是winform 既然你没问题 你给个demo吧
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-9-17 10:11:18
6#
在对annotation做了操作以后,需要用cell.Refresh();刷新单元格,这样显示的图像才会变化
这里是给开发包里C:\LEADTOOLS 20\Examples\DotNet\CS\MedicalViewerDemo中的MainFrom窗口加了一个复选框,

  1.         private void checkBox1_CheckedChanged(object sender, EventArgs e)
  2.         {
  3.             foreach (MedicalViewerCell cell in Viewer.Cells)
  4.             {
  5.                 if (cell.Selected)
  6.                 {
  7.                     foreach (Leadtools.Annotations.Engine.AnnObject obj in cell.AutomationContainer.Children)
  8.                     {
  9.                         obj.IsVisible = checkBox1.Checked;
  10.                     }
  11.                     cell.Refresh();
  12.                 }

  13.             }
  14.         }
复制代码
回复 使用道具 举报
sesan
高级会员   /  发表于:2019-9-17 20:26:53
7#
Richard.Ma 发表于 2019-9-17 10:11
在对annotation做了操作以后,需要用cell.Refresh();刷新单元格,这样显示的图像才会变化
这里是给开发包 ...

你这个也不全对 如果一个cell里面包含n张图像 你这种只能隐藏当前图像的标记 而不是整个cell所有的标记
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-9-18 09:36:32
8#
如果是要所有帧的,可以用cell.Automation.Containers,然后去遍历包含的每一个AnnContainer,即每一帧的标注

  1.             foreach (MedicalViewerCell cell in Viewer.Cells)
  2.             {
  3.                
  4.                 if (cell.Selected)
  5.                 {
  6.                     foreach(AnnContainer con in cell.Automation.Containers)
  7.                     {
  8.                         foreach (Leadtools.Annotations.Engine.AnnObject obj in con.Children)
  9.                         {
  10.                             obj.IsVisible = checkBox1.Checked;
  11.                         }
  12.                     }
  13.                     cell.Refresh();
  14.                 }
  15.             }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部