以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  记录窗口,网址列,怎么直接打开网页。  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=90507)

--  作者:yancheng
--  发布时间:2016/9/14 17:06:00
--  记录窗口,网址列,怎么直接打开网页。
如果 在表事件中,设置了,所有不可以直接编辑。(表事件,PrepareEdit, e.Cancel =True)


如何 ,在窗口-记录窗口,网址列,怎么直接打开网页。

--  作者:狐狸爸爸
--  发布时间:2016/9/14 17:25:00
--  

那就设置click或者doubleclick事件,在这两个事件中用代码打开网页

 

 


--  作者:狐狸爸爸
--  发布时间:2016/9/14 17:29:00
--  

If e.Col.name = "第三列"
    If e.Row.IsNull("第三列") = False Then
        Dim Proc As New Process
        Proc.File = e.Row("第三列")
        Proc.Start()
    End If
End If

 

不过好像对记录窗口无效。

 

图片点击可在新窗口打开查看

[此贴子已经被作者于2016/9/14 17:29:43编辑过]

--  作者:狐狸爸爸
--  发布时间:2016/9/14 17:33:00
--  

这样可以了,不要用PrepareEdit,代码放在StartEdit事件:

 

 

If e.Col.name = "第三列"
    If e.Row.IsNull("第三列") = False Then
        Dim Proc As New Process
        Proc.File = e.Row("第三列")
        Proc.Start()
    End If
End If
e.cancel = True

[此贴子已经被作者于2016/9/14 17:45:21编辑过]

--  作者:有点蓝
--  发布时间:2016/9/14 17:44:00
--  
1、PrepareEdit不限制网址列,网址列的e.Cancel =True放到DataColChanging

2、绑定记录窗口事件,如双击事件,参考

全局代码:

Public Sub gdr2_MouseDoubleClick(sender As System.Object, e As System.Windows.Forms.MouseEventArgs)
If sender.RowSel = 2 Then \'假定网址列是第三列
    Dim Proc As New Process \'定义一个新的Process
    Proc.File = sender.Rows(2)(1) \'指定要打开的网页地址
    Proc.Start()
End If
End Sub

窗口AfterLoad事件
Dim rgd As WinForm.RecordGrid = e.Form.Controls("RecordGrid1")
Dim g1 As C1FlexGrid.C1FlexGrid = rgd.basecontrol
addhandler g1.MouseDoubleClick, addressof gdr2_MouseDoubleClick


--  作者:yancheng
--  发布时间:2016/9/14 17:45:00
--  PrepareEdit里面写,可以。

PrepareEdit里面写,可以。


If e.Col.Name <> "选" And  e.Col.name <> "网址" Then
e.Cancel =True
End If

--  作者:yancheng
--  发布时间:2016/9/14 17:47:00
--  
Dim strs() As String = {"选","网址"}
For i As Integer = 0 To strs.Length-1
    If e.Col.Name <> strs(i) Then
        e.Cancel =True
    End If
Next

我改成这样,又不行了。不知道,这样改代码,哪里不对?

--  作者:狐狸爸爸
--  发布时间:2016/9/14 17:48:00
--  

你这样,网址列依然可以编辑,建议用4楼代码。


--  作者:yancheng
--  发布时间:2016/9/14 17:58:00
--  
嗯。按狐爸的来,很好用。谢谢

startedit写入:

If e.Col.name = "选"
    e.Cancel = False
Else
    Dim strs() As String = {"网址","网址2","网址3","官网"}
    For i As Integer = 0 To strs.Length-1
        If e.Col.name = strs(i)
            If e.Row.IsNull(strs(i)) = False Then
                Dim Proc As New Process
                Proc.File = e.Row(strs(i))
                Proc.Start()
            End If
        End If
        e.cancel = True
    Next
End If

--  作者:yancheng
--  发布时间:2016/9/14 18:05:00
--  
狐爸,今年的,终身版。还有吗?什么时候 发?多少钱?