Foxtable(狐表)用户栏目专家坐堂 → [求助] 单元格边框为什么只有右边和下边显示?


  共有3055人关注过本帖树形打印复制链接

主题:[求助] 单元格边框为什么只有右边和下边显示?

帅哥哟,离线,有人找我吗?
lsy
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
[求助] 单元格边框为什么只有右边和下边显示?  发帖心情 Post By:2015/11/12 16:56:00 [只看该作者]

Dim t As Table = Tables("表A")
Dim cs As C1.Win.C1FlexGrid.CellStyle = t.Grid.Styles.Add("自定义样式")
cs.Border.Width = 3
cs.Border.Color = Color.Red
t.Grid.SetCellStyle(t.RowSel + 1,t.ColSel + 1,cs)

如果要设置某一边或所有四边的边框,代码如何写?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/12 17:16:00 [只看该作者]

只能变通

 

Dim t As Table = Tables("表A")
Dim cs1 As C1.Win.C1FlexGrid.CellStyle = t.Grid.Styles.Add("样式1")
Dim cs2 As C1.Win.C1FlexGrid.CellStyle = t.Grid.Styles.Add("样式2")
Dim cs3 As C1.Win.C1FlexGrid.CellStyle = t.Grid.Styles.Add("样式3")
cs1.Border.Width = 3
cs1.Border.Color = Color.Red
cs1.Border.Direction = 0
cs2.Border.Width = 3
cs2.Border.Color = Color.Red
cs2.Border.Direction = 1
cs3.Border.Width = 3
cs3.Border.Color = Color.Red
cs3.Border.Direction = 2
t.Grid.SetCellStyle(t.RowSel + 1,t.ColSel + 1,cs1)
t.Grid.SetCellStyle(t.RowSel,t.ColSel + 1,cs2)
t.Grid.SetCellStyle(t.RowSel + 1,t.ColSel,cs3)


 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2015/11/12 17:22:00 [只看该作者]

能达到目的就行。
谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
lhlh
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:211 积分:1997 威望:0 精华:0 注册:2014/11/11 10:23:00
  发帖心情 Post By:2016/8/20 12:29:00 [只看该作者]

上面的例子,要实现之前选择的单元格边框恢复原貌,而新点击的单位格边框显示红色,选择其他控件后,整个表格恢复原貌。


 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/8/20 13:39:00 [只看该作者]

看懂2楼的代码

在BeforeSelChange事件还原之前选择单元格的样式

 回到顶部
帅哥哟,离线,有人找我吗?
lhlh
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:211 积分:1997 威望:0 精华:0 注册:2014/11/11 10:23:00
  发帖心情 Post By:2016/8/20 14:30:00 [只看该作者]

以下是引用Hyphen在2016/8/20 13:39:00的发言:
看懂2楼的代码

在BeforeSelChange事件还原之前选择单元格的样式

 

麻烦帮看一下,我只是将颜色改为白色,但不行,所有单击过的单元格还是保持红色,不知怎么不原?

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目3.zip


 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/8/20 14:36:00 [只看该作者]

BeforeSelChange事件

Dim t As Table = e.Table
t.Grid.Styles.remove("样式1")
t.Grid.Styles.remove("样式2")
t.Grid.Styles.remove("样式3")


 回到顶部
帅哥哟,离线,有人找我吗?
lhlh
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:211 积分:1997 威望:0 精华:0 注册:2014/11/11 10:23:00
  发帖心情 Post By:2016/8/20 14:45:00 [只看该作者]

成了,真是好人呀,谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
lhlh
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:211 积分:1997 威望:0 精华:0 注册:2014/11/11 10:23:00
  发帖心情 Post By:2016/8/20 16:42:00 [只看该作者]

有个问题,如下图箭头所示地方,怎么两条边条会不显示?用的就是如下代码

Dim t As Table = Tables("表A")
Dim cs1 As C1.Win.C1FlexGrid.CellStyle = t.Grid.Styles.Add("样式1")
Dim cs2 As C1.Win.C1FlexGrid.CellStyle = t.Grid.Styles.Add("样式2")
Dim cs3 As C1.Win.C1FlexGrid.CellStyle = t.Grid.Styles.Add("样式3")
cs1.Border.Width = 3
cs1.Border.Color = Color.Red
cs1.Border.Direction = 0
cs2.Border.Width = 3
cs2.Border.Color = Color.Red
cs2.Border.Direction = 1
cs3.Border.Width = 3
cs3.Border.Color = Color.Red
cs3.Border.Direction = 2
t.Grid.SetCellStyle(t.RowSel + 1,t.ColSel + 1,cs1)
t.Grid.SetCellStyle(t.RowSel,t.ColSel + 1,cs2)
t.Grid.SetCellStyle(t.RowSel + 1,t.ColSel,cs3)

 


图片点击可在新窗口打开查看此主题相关图片如下:20160820163856.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/8/20 17:10:00 [只看该作者]

这个没有办法。

还是用drawcell做吧

If e.Row.Index = e.Table.RowSel AndAlso e.Col.Index = e.Table.ColSel Then
    using n As New Pen(Color.Red,1)
    e.Graphics.DrawRectangle(n,e.x + 1,e.y + 1,e.Width-4,e.Height-4)
End using
End If

 回到顶部
总数 16 1 2 下一页