以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 显示不正常怎么回事 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=186115) |
||||
-- 作者:cd_tdh -- 发布时间:2023/4/7 9:07:00 -- 显示不正常怎么回事
此主题相关图片如下:qq截图20230407090222.jpg |
||||
-- 作者:有点蓝 -- 发布时间:2023/4/7 9:12:00 -- 把窗口表样式改为“无” |
||||
-- 作者:cd_tdh -- 发布时间:2023/4/7 9:17:00 -- \' Me.BorderStyle = Windows.Forms.BorderStyle.FixedSingle 全局代码这一句报错,我把他注释了,怎么修改呢
|
||||
-- 作者:有点蓝 -- 发布时间:2023/4/7 9:18:00 -- Me.BorderStyle = system.Windows.Forms.BorderStyle.FixedSingle |
||||
-- 作者:cd_tdh -- 发布时间:2023/4/7 9:18:00 -- Me.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle 这样就没问题了
|
||||
-- 作者:cd_tdh -- 发布时间:2023/4/7 15:20:00 -- 请教一下老师,双击日期对应的那一天,怎么获取所得的值?比如:双击2023-04-05 ,得到这一天的值?不想去细致研究所有代码了。 |
||||
-- 作者:有点蓝 -- 发布时间:2023/4/7 15:28:00 -- 和普通表格的操作没有区别 [此贴子已经被作者于2023/4/7 15:28:28编辑过]
|
||||
-- 作者:cd_tdh -- 发布时间: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编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2023/4/10 13:55:00 -- 因为这个绘制执行是非常频繁的,可能一秒钟触发几十次,不能在绘制里执行费时的代码。建议把当月数据都加载出来,在前端查询,不要查数据库 |
||||
-- 作者:cd_tdh -- 发布时间:2023/4/10 14:35:00 -- 测试确实是应为用了sqlfind这个问题,改find就没问题了。 |