以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  按下键盘和鼠标点击不一样  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=51282)

--  作者:kao_go
--  发布时间:2014/5/23 11:22:00
--  按下键盘和鼠标点击不一样
在窗口中放了一个记录窗口,设定的是第一列为空时不允许保存,
按钮点保存时(选中非第一列,第一列为空)会提示警告窗口不允许保存,
用快捷键F2时(选中非第一列,第一列为空)不会提示,会直接保存一条新的记录????
如果记录窗口中是编辑状态(光标闪动)就会生效,选中状态提示就不生效???
怎么把记录窗口改为,选中就进入编辑状态??
保存按钮click中代码
\'窗口变量,编辑状态
Dim bianji As String=e.Form.Controls("bianji").text

With Tables("yonghu")
    If .Current("yhdm")="" Then
        If MessageBox.Show(.Cols("yhdm").Caption+"不能为空!","警告",MessageBoxButtons.ok,MessageBoxIcon.Question) = DialogResult.ok Then
        End If
        \'新增或者修改时默认选中第一行第一列,并进入编辑状态
        e.Form.Controls("you1").BaseControl.Row=0
        e.Form.Controls("you1").BaseControl.Col=1
        e.Form.Controls("you1").BaseControl.StartEditing
        \'新增或者修改时默认选中第一行第一列,并进入编辑状态
    Else
        .Current.Save()  \'保存后禁止编辑 其他相应按钮禁用
        .AllowEdit = False
        e.Form.Controls("baocun").Enabled =False  \'设置按钮状态
        e.Form.Controls("quxiao").Enabled =False
        e.Form.Controls("xinzeng").Enabled =True
        e.Form.Controls("xiugai").Enabled =True
        e.Form.Controls("shanchu").Enabled =True
        e.Form.Controls("shuaxin").Enabled =True
        e.Form.Controls("daochu").Enabled =True
        e.Form.Controls("dayin").Enabled =True
        e.Form.Controls("shezhi").Enabled =True
        e.Form.Controls("guanbi").Enabled =True  \'设置按钮状态
        e.Form.Controls("bianji").text="0"        \'窗口变量,编辑状态
    End If
End With

表keydownedit事件中代码
If e.KeyCode = Keys.F2 Then
    e.Form.Controls("baocun").PerformClick
End If
[此贴子已经被作者于2014-5-23 11:25:14编辑过]

--  作者:有点甜
--  发布时间:2014/5/23 11:33:00
--  

 不理解你的意思,改一下代码

 

If .Current.IsNull("yhdm")  Then

[此贴子已经被作者于2014-5-23 11:32:45编辑过]

--  作者:Bin
--  发布时间:2014/5/23 11:33:00
--  
上个例子看看
--  作者:有点甜
--  发布时间:2014/5/23 11:33:00
--  
 具体问题请上传例子。
--  作者:kao_go
--  发布时间:2014/5/23 11:39:00
--  回复:(有点甜) 不理解你的意思,改一下代码...
就是直接点【保存】按钮的时候,里面的代码一直是生效的
如果按F2,只有记录窗口是编辑状态(光标闪动)的时候,才生效,如果记录窗口只是选中某一行,则保存按钮中if .current("yhdm")="" then就不生效了

--  作者:Bin
--  发布时间:2014/5/23 11:43:00
--  
不应该,你可以弹出一下. 看看.current("yhdm")的值是什么
--  作者:kao_go
--  发布时间:2014/5/23 11:47:00
--  回复:(Bin)不应该,你可以弹出一下. 看看.current("...
怎么把单元格双击进入编辑模式改为单击进入编辑模式??
--  作者:有点甜
--  发布时间:2014/5/23 12:19:00
--  
以下是引用kao_go在2014-5-23 11:47:00的发言:
怎么把单元格双击进入编辑模式改为单击进入编辑模式??

 

表格的click事件

 

e.Table.StartEditing

 

[此贴子已经被作者于2014-5-23 12:20:16编辑过]

--  作者:kao_go
--  发布时间:2014/5/23 12:38:00
--  回复:(有点甜)以下是引用kao_go在2014-5-23 11:47:...
单击变编辑,要怎么样在记录窗口中生效呢?
[此贴子已经被作者于2014-5-23 12:38:30编辑过]

--  作者:Bin
--  发布时间:2014/5/23 14:23:00
--  
这就比较麻烦了,如果是窗口控件,需要为记录窗口重写单机事件, 然后输入代码 Forms("窗口").Controls("RecordGrid1").basecontrol.StartEditing


其实个人感觉无须纠结于单机双击吧?