以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  basemainform相关问题!  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=87684)

--  作者:ycwk
--  发布时间:2016/7/16 23:25:00
--  basemainform相关问题!
制作了一个模式窗口,打开和关闭时都不想显示后面的basemainform ,在窗口的afterclose写了如下代码:

Syscmd.Project.Save()

Syscmd.Project.Exit(True)



但是窗口关闭的后的确不会再打开basemainform了,但就会报错如下:


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


按住ctrl 又会报下面的错误,  就再也进不了basemainform了。  但我另一外一套程序openQQ也是这么写的就没问题,不知道何故!


 .NET Framework 版本:2.0.50727.8689
Foxtable 版本:2016.6.10.1
错误所在事件:窗口,软件自助报障系统窗口,AfterLoad
详细错误信息:
未将对象引用设置到对象的实例。

afterload 事件代码如下:

Tables("自助报障记录表").Current("记录人")=user.Name    \'当前操作员的姓名存到数据库中
Dim IPAdress As System.Net.IPAddress 
Dim HostName As String
HostName = System.Net.Dns.GetHostName \'获得本机的机器名 
IPAdress = System.Net.Dns.GetHostByName(HostName).AddressList.GetValue(0) \'获得本机的IP 
\'OutPut.Show( HostName )  \'本机机器名 
\' OutPut.Show(IPAdress.ToString )  \'本机的IP
\'MessageBox.Show(HostName)
\'MessageBox.Show(IPAdress.ToString)

Tables("自助报障记录表").Current("报障电脑主机名")  =HostName
Tables("自助报障记录表").Current("报障电脑IP")  =IPAdress.ToString

\'报障人自动填为当前用户
Tables("自助报障记录表").Current("报障人")= User.Name


注: 该模式窗口所有者表为空。


代码如下: 由于数据库在内网里面,故连接可能有问题。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:软件自助报障系统7.rar




--  作者:ycwk
--  发布时间:2016/7/16 23:32:00
--  

[此贴子已经被作者于2016/7/25 17:42:44编辑过]

--  作者:ycwk
--  发布时间:2016/7/17 22:30:00
--  
查看别人的代码,发现一招,谢谢大神!


但是我发现程序关闭后,仍然不能彻底关闭,在任务管理器里面仍然有程序运行,关闭窗口的时候怎么彻底关闭任务呢?


Forms("窗口1").Open(-1000,-1000)

Basemainform.ShowIcon = False
[此贴子已经被作者于2016/7/17 22:32:24编辑过]

--  作者:Hyphen
--  发布时间:2016/7/18 9:32:00
--  
我测试是进程已经关闭的。

最好转换为内部表的项目发上来测试,连不上数据库,我是在出现错误的情况下测试的

--  作者:ycwk
--  发布时间:2016/7/25 17:45:00
--  
关闭窗口后,但是foxtable 仍然在任务栏里面运行,导致我再启动程序后,无法使用 热键 (f10) 截图了。重启电脑或者结束任务后又会恢复!    没有办法在关闭窗口后强制结束任务吗?


另外想问一下, Messagebox有没有办法做成一个模态窗口?  有时候弹出来的时候并不在最上层,而是在下层,不容易看到

--  作者:ycwk
--  发布时间:2016/7/25 17:51:00
--  

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

就是狐爸说的这个情况,请问如何解决?   我做的是个窗口程序,必须得隐藏后面的basemainform

--  作者:大红袍
--  发布时间:2016/7/25 18:03:00
--  

试试这样写代码

 

Dim ps As  System.Diagnostics.Process() = System.Diagnostics.Process.GetProcessesByName("foxtable")
For Each p As System.Diagnostics.Process In ps

    msgbox(p.MainWindowTitle)
    If p.MainWindowTitle = "你系统标题" Then  p.kill
Next


--  作者:ycwk
--  发布时间:2016/7/25 18:37:00
--  
另外想问一下, Messagebox有没有办法做成一个模态窗口?  有时候弹出来的时候并不在最上层,而是在下层,不容易看到?
--  作者:大红袍
--  发布时间:2016/7/25 18:40:00
--  

 参考

 

MessageBox.Show("提示!", "重要提示",MessageBoxButtons.Ok,MessageBoxIcon.Question, 0, Windows.forms.MessageBoxOptions.ServiceNotification)


--  作者:ycwk
--  发布时间:2016/7/26 8:34:00
--  
在模式窗口的afterload事件中,加了下面这句话,可是打开窗口和关闭窗口都会弹出,不知何故?  
MessageBox.show("由于现在时间为非上班时间,自助报障可能无法及时受理,请拨打值班电话66666先咨询" )