Foxtable(狐表)用户栏目专家坐堂 → 显示不正常怎么回事


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

主题:显示不正常怎么回事

帅哥,在线噢!
cd_tdh
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3096 积分:20666 威望:0 精华:0 注册:2016/3/28 16:57:00
显示不正常怎么回事  发帖心情 Post By:2023/4/7 9:07:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:我的日历20140402.rar


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20230407090222.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107154 积分:545019 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/4/7 9:12:00 [只看该作者]

把窗口表样式改为“无”

 回到顶部
帅哥,在线噢!
cd_tdh
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3096 积分:20666 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2023/4/7 9:17:00 [只看该作者]

'        Me.BorderStyle = Windows.Forms.BorderStyle.FixedSingle
全局代码这一句报错,我把他注释了,怎么修改呢

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107154 积分:545019 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/4/7 9:18:00 [只看该作者]

Me.BorderStyle = system.Windows.Forms.BorderStyle.FixedSingle

 回到顶部
帅哥,在线噢!
cd_tdh
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3096 积分:20666 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2023/4/7 9:18:00 [只看该作者]

        Me.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
这样就没问题了

 回到顶部
帅哥,在线噢!
cd_tdh
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3096 积分:20666 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2023/4/7 15:20:00 [只看该作者]

请教一下老师,双击日期对应的那一天,怎么获取所得的值?比如:双击2023-04-05 ,得到这一天的值?不想去细致研究所有代码了。

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107154 积分:545019 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/4/7 15:28:00 [只看该作者]

和普通表格的操作没有区别

MsgBox(e.Row(e.Col.Name))
[此贴子已经被作者于2023/4/7 15:28:28编辑过]

 回到顶部
帅哥,在线噢!
cd_tdh
  8楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3096 积分:20666 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2023/4/10 12:41:00 [只看该作者]

请教一下老师,我修改了一下,个人待办有数据时,换一种颜色显示,效果到达了,但是,窗口打开后,会等2秒左右,日历才会显示出来,什么问题呢?
代码是写窗口表的绘制事件的,红色代码是我新增加的代码
If e.Form.Controls("BL_日历_当前选择年月").text = "" Then Return
Dim Fnt As Font = New Font("微软雅黑", 9)
Dim Fnt1 As Font = New Font("微软雅黑", 5)
If e.Form.Width > 300 Then
    Fnt1 = New Font("微软雅黑", 7)
End If
Dim MyMonth = CDate(e.Form.Controls("BL_日历_当前选择年月").text).Month
Dim points(1) As Point
points(0) = New Point(e.x, e.y)
points(1) = New Point(e.x , (e.y + e.Height))
Dim BJ_标题 As New LinearGradientBrush(points(0), points(1), Color.LightSkyBlue, Color.LightSkyBlue) '封装标题栏的背景的渐变色SkyBlue,MediumSpringGreen
If e.Row.Index = 0 Then '绘制标题
    e.Graphics.FillRectangle(BJ_标题, New Rectangle(e.X, e.Y, e.Width, e.Height))
End If
If e.Row.Index > 0 Then '非标题
    Dim x, y As Integer
    Dim MyText As String = e.Text
    Dim MyDate As Date
    If (DateTime.TryParse(MyText, MyDate)) Then '如果文本可以转为日期
        Dim ZT_当月 As SolidBrush = New SolidBrush(Color.Black)
        Dim ZT_非当月 As SolidBrush = New SolidBrush(Color.OliveDrab)
        Dim BJ_非当月 As SolidBrush = New SolidBrush(Color.DarkGray)
        Dim BJ_当月 As New LinearGradientBrush(points(0), points(1), Color.LightBLue, Color.LightCyan) '封装当月日期背景的渐变色
        Dim BJ_今天 As New LinearGradientBrush(points(0), points(1), Color.plum, Color.MediumOrchid) '封装当月日期背景的渐变色
        Dim BJ_有事 As New LinearGradientBrush(points(0), points(1), Color.Red, Color.LightCyan) '封装当月日期背景的渐变色
        
        Dim Int_月 As Integer = MyDate.Month
        Dim str As String = Functions.Execute("日历_农历计算", MyDate) '取农历字符
        If str.Contains("初一") Then
            ZT_当月 = New SolidBrush(Color.Red)
        End If
        Dim sf As New StringFormat(StringFormatFlags.NoClip)
        sf.Alignment = StringAlignment.Center '文本对中
        Dim 公历 As RectangleF = New RectangleF(e.X + 2, e.Y + 2, (e.Width - 4), e.Height / 2)
        Dim 农历 As RectangleF = New RectangleF((e.X + 2), (e.Y + e.Height / 2), (e.Width - 4), (e.Height - 4))
        Dim 单元格 As RectangleF = New RectangleF(e.X, e.Y, e.Width, e.Height)
        If Int_月 = MyMonth Then '本月日历
            
            Dim dr As DataRow = DataTables("个人事务").SQLFind("登记日期 = #" & e.Row(e.Col.Name) & "#")
            If dr IsNot Nothing Then
                e.Graphics.FillRectangle(BJ_有事, 单元格)
            Else
                If MyDate = Date.Today Then
                    e.Graphics.FillRectangle(BJ_今天, 单元格)
                Else
                    e.Graphics.FillRectangle(BJ_当月, 单元格)
                End If
            End If
            If e.Form.Width < 200 Then
                e.Graphics.DrawString(MyDate.Day , Fnt, ZT_当月, 单元格, sf)
            Else
                e.Graphics.DrawString(MyDate.Day , Fnt, ZT_当月, 公历, sf)
                e.Graphics.DrawString(str, Fnt1, ZT_当月, 农历, sf)
            End If
        Else '非本月日历
            e.Graphics.FillRectangle(BJ_非当月 , 单元格)
            If e.Form.Width < 200 Then
                e.Graphics.DrawString(MyDate.Day , Fnt, ZT_非当月, 单元格, sf)
            Else
                e.Graphics.DrawString(MyDate.Day , Fnt, ZT_非当月, 公历, sf)
                e.Graphics.DrawString(str, Fnt1, ZT_非当月, 农历, sf)
            End If
        End If
    End If
End If
[此贴子已经被作者于2023/4/10 12:58:45编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107154 积分:545019 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/4/10 13:55:00 [只看该作者]

因为这个绘制执行是非常频繁的,可能一秒钟触发几十次,不能在绘制里执行费时的代码。建议把当月数据都加载出来,在前端查询,不要查数据库

 回到顶部
帅哥,在线噢!
cd_tdh
  10楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3096 积分:20666 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2023/4/10 14:35:00 [只看该作者]

测试确实是应为用了sqlfind这个问题,改find就没问题了。

 回到顶部