Foxtable(狐表)用户栏目专家坐堂 → [求助]HTML编辑器同步删除图片


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

主题:[求助]HTML编辑器同步删除图片

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


加好友 发短信
等级:五尾狐 帖子:1140 积分:11255 威望:0 精华:0 注册:2017/9/26 16:30:00
[求助]HTML编辑器同步删除图片  发帖心情 Post By:2019/1/24 21:24:00 [显示全部帖子]

HTML编辑器添加本地图片后,如果在编辑器窗口鼠标右键删除图片,项目目录下的图片文件同时删除的代码怎么写?
另外,添加  “本地图片”  的按钮代码,有两段基本重复,但又修改不好,麻烦老师看一下。
谢谢!

图片点击可在新窗口打开查看此主题相关图片如下:截屏图片 (2).jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:html管理项目-测试.rar





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


加好友 发短信
等级:五尾狐 帖子:1140 积分:11255 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2019/1/25 21:58:00 [显示全部帖子]

老师好!
我是这样想的:
每当在HTML编辑器中删除一张图片时,数据表的单元格都会删除一行对应的代码。
怎样根据单元格中被删除的代码,来删除对应目录下的图片文件?
比如单元格删除了这句(或多句)代码:<img alt="" src="../FTbqtemp/WYT45.jpg" />
那么就删除这个文件:  ProjectPath & "/FTbqtemp/WYT45.jpg"   


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

Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "html_内容"  
        Dim str As String = dr("html_内容")
        ......
  
End Select


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


加好友 发短信
等级:五尾狐 帖子:1140 积分:11255 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2019/1/26 21:40:00 [显示全部帖子]

老师好!
代码看明白了,但是遇到一点问题:
在HTML编辑器删除图片后,点击“保存”按钮,不起作用,需要鼠标在HTML编辑器里点击一下,使编辑窗口成为焦点控件后,再点击“保存”,才起作用。
我在“保存”按钮里加了一句代码,也不起作用,麻烦老师给改一下,谢谢!

代码如下:
e.Form.Controls("WebBrowser1").Select   ’这句代码没有在HTML编辑器里出现鼠标闪动

With Tables("监理通知单")
    .current("html_内容") = EditorHelper.BodyHtml
    Dim ls As List(of String) = .Current.DataRow.lines("本地图片")
    Dim rls As new List(of String)
    For Each f As String In ls
        If .current("html_内容").contains(f) = False Then
            If filesys.FileExists(ProjectPath & "FTbqtemp/" & f)
                FileSys.DeleteFile(ProjectPath & "FTbqtemp/" & f, 2, 2)
            End If
            rls.add(f)
        End If
    Next
    For Each f As String In rls
        ls.Remove(f)
    Next
    .Current.DataRow.lines("本地图片") = ls
    ' .current.save()
End With

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


加好友 发短信
等级:五尾狐 帖子:1140 积分:11255 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2019/1/27 13:48:00 [显示全部帖子]

老师好!
例子就是2楼老师给写的,我测试是这样的:

1、添加本地图片进入HTML编辑窗口时,没有问题,数据表的[图片]列 和[html_内容]列都会自动添加图片和图片代码;

2、当鼠标右键在编辑窗口删除图片后,点击“保存”按钮,再关闭编辑窗口。
然后,双击单元格重新打开HTML编辑窗口,发现刚才在编辑窗口删除的图片仍然存在。

3、经测试,在编辑窗口鼠标右键删除图片后,需要在编辑窗口内再点击一次,然后保存,图片才能在[图片]列 和项目目录中删除。


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


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


加好友 发短信
等级:五尾狐 帖子:1140 积分:11255 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2019/1/30 11:01:00 [显示全部帖子]

甜老师好!

我想截取HTML编辑窗口范围内(下图红框内)的图片,代码应该怎样修改?

 

'截取窗口控件图片
Dim Web = e.Form.Controls("WebBrowser1").BaseControl
Dim point As Point = e.Form.Panel.PointToScreen(Web.Bounds.Location)
Dim myGraphics As Graphics = basemainform.CreateGraphics()
Dim s As new Size(Web.width, Web.height)      '截取的大小
Dim bit As New Bitmap(s.Width, s.Height, myGraphics)
Dim memoryGraphics As Graphics = Graphics.FromImage(bit)
memoryGraphics.CopyFromScreen(point.x, point.y,0, 0, s)      '截取的开始位置,坐标(100, 200)
bit.save("d:\test.jpg")
memoryGraphics.dispose
myGraphics.dispose
bit.dispose
 

 


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

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


加好友 发短信
等级:五尾狐 帖子:1140 积分:11255 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2019/1/30 13:53:00 [显示全部帖子]

谢谢甜老师!

经测试,如果窗口中的WebBrowser控件上方还有其他控件的话(见图1),截取的图像就会出错(见图2),截图代码是不经尺寸调整的原始代码。

请老师帮助测试,是哪里的原因?

 

原始窗口:

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


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

  

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:html控件截图-测试.rar


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


加好友 发短信
等级:五尾狐 帖子:1140 积分:11255 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2019/1/30 21:08:00 [显示全部帖子]

控件截图没问题了。谢谢甜老师!
这个贴子中老师给的两行红色代码够我学几年的。

我又遇到新问题,我想直接在HTML编辑器中插入截图,根据添加本地图片的方法,修改了相应代码。
数据表和项目目录中都添加了相应的截图文件,但编辑窗口没有正确显示所截图片,出现一个小“叉号”,是哪里的问题?

代码如下:
Tables("数据").current("HTML_题目") = EditorHelper.BodyHTML

'******获取截图新文件*********
Dim proc As new Process      
proc.File = ApplicationPath & "capture.exe"
proc.WaitForClose = True
proc.Start
If ClipBoard.GetImage IsNot Nothing Then
    ClipBoard.GetImage.save("d:\test.jpg")
    
    '*****判断ftbqtemp临时目录是否存在
    If FileSys.DirectoryExists(ProjectPath & "\FTbqtemp") = False Then '如果目录不存在
        FileSys.CreateDirectory(ProjectPath & "\FTbqtemp")  '则创建
    End If
    
    '**********复制并重命名文件*********
    Dim wjm As String = "WYT" & CStr(Tables("数据").current.DataRow("_Identify"))
    wjm = wjm & CStr(FileSys.GetFiles(ProjectPath & "/FTbqtemp").Count + 1)
    Dim ifo As new FileInfo("d:\test.jpg")
    Dim wj = wjm & ifo.Extension
    Dim xdlj As String = "../FTbqtemp/" & wjm & ifo.Extension
    wjm = ProjectPath & "FTbqtemp/" & wjm & ifo.Extension
    FileSys.CopyFile("d:\test.jpg",wjm,True)
    
    '********调用HTML编辑器***********
    Dim wbs1 As Object = e.Form.Controls("WebBrowser1").basecontrol
    wbs1.Url = new System.Uri(ProjectPath & "kindeditor\e.HTML", System.UriKind.Absolute)
    EditorHelper = new ObjectForScriptingHelper
    wbs1.ObjectForScripting = EditorHelper
    
    '修改HTML题目
    With Tables("数据")
        .Current("HTML_题目") = .Current("HTML_题目") & "<img alt="""" src=""" & xdlj & """ /><p>"
        EditorHelper.RequestContent( .current("HTML_题目"))
        Dim ls = .Current.DataRow.lines("题目图片")
        ls.add(wj)
        .Current.DataRow.lines("题目图片") = ls
    End With
End If

Dim wbs As Object = e.Form.Controls("WebBrowser1").basecontrol
wbs.Url = new System.Uri(ProjectPath & "kindeditor\e.HTML", System.UriKind.Absolute)
EditorHelper = new ObjectForScriptingHelper
wbs.ObjectForScripting = EditorHelper

''修改HTML题目
With Tables("数据")
    EditorHelper.RequestContent( .current("HTML_题目"))
End With


 回到顶部