一、点击listview空白行的事件是什么,也就是说从怎么方法可得到员工是点击空白行的(没有记录的行)二、有什么方法可以实现当一个窗体完成装载好了的时候才显示请大家帮帮我,谢谢

解决方案 »

  1.   

    1、问题
    Private Sub lsvShow_Click()
    On Error GoTo errtrap
        If Not lsvShow.SelectedItem Is Nothing Then
            msgbox lsvShow.SelectedItem.Text
        Else
            On Error GoTo 0
            Exit Sub
        End If
      
        On Error GoTo 0
        Exit Sub
    errtrap:
        On Error GoTo 0
    End Sub
    2、问题
    Load form1
    '在这期间,运行你的启动画面
    form1.show
      

  2.   

    if listview1.selectitem is nothing then 
        msgbox"您是不是点错了!请再仔细看一看!"
        exit sub
     end if
      

  3.   

    to SoHo_Andy(冰) ...
    问题一:
       listview只要有数据行,不管你点击的是数据行还是空白行,Not lsvShow.SelectedItem Is Nothing 的值总是为True,所以这个方法是不可行的。问题二:
       当Load form1时,窗体已经被看到了,而我需要的是Load form1完成之后才被看到,所以还需要用别的方法。   不过不管怎么说还是谢谢你。
      

  4.   

    点击空行后list1.text=""吧,其他的时候list1.text应该都不为空吧,除了在刚加载窗体时list1.text也为空
      不知道这样能不能帮助你实现你想做的   或者刚加载list1时你算一下list1中总共有多少项,然后再list1.click事件中判断list1.listindex这个值是否大于list1的项数 ,如果是,就证明点击的是空   不知道我说的对不对,瞎想的:)
      

  5.   

    to : yigu(一古)
    listbox和listview不太一样
    继续等待
      

  6.   

    如果在from.load事件末尾加me.hide ,
    然后在显示的时候在show
      

  7.   


    Private Sub Command1_Click()
      Load Form2
    End SubPrivate Sub Command2_Click()
     Form2.Show
    End Sub
     private sub form2_load()
    '
    '
    end sub
      

  8.   

    忘记了:)
    form2-load 中末尾加me.hide
      

  9.   

    用以上的方法,如果窗体加载的内容较少是可行的,但是如果窗体需加载的内容较多时(可能需要几秒种的时间),Load Form2一执行,则窗体已经被看见了,from2.hide来不及了。
      

  10.   

    第一题
    Dim a As BooleanPrivate Sub Form_Load()
        a = False
    End SubPrivate Sub List1_Click()
        a = True
    End SubPrivate Sub List1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
        If a = False Then
            MsgBox "为空"
        End If
    End Sub第二个问题
    把要显示的窗体做成MDI子窗体。
      

  11.   

    给你解释一下那个程序!
    当点的是空白处时是不激发单击事件的所以A还是等于FALSE。
    当A=FALSE的时候说明点的是空白行在List1_MouseUp的里判断一下A的值就行了啊!
      

  12.   

    第二个问题。
    可以先me.hide 
    然后在执行load事件
      

  13.   

    2、
    Private Sub Form_Load()
    Form1.Top = 0
    Form1.Left = 0
    Form1.Width = 0
    Form1.Height = 0'.............
    '.............Form1.Top = 0
    Form1.Left = 0
    Form1.Width = Screen.Width
    Form1.Height = Screen.Height - 400
    End Sub
      

  14.   

    对于第二个问题
    窗体的加载时,需要加入比较多的数据,这个我也不想的
    还有,我已经先me.hide,甚至也把窗体设置了不可见属性,然后再load 
    但是仍然不行,一旦执行到load ,窗体就看见了,我也不知道为什么。
      

  15.   

    为什么不在load事件里执行me.hide,当查询完后再显示。
      

  16.   

    对于第一个问题,由于listview的ItemClick事件先于Click事件触发所以可以在ItemClick事件中写入标志,ItemClick事件中判断该标志。代码实现如下:Option Explicit
    Dim mIsItem As Boolean
    Private Sub Form_Load()
    ListView1.ColumnHeaders.Add , , "aaa"
    ListView1.ListItems.Add , , "test1"
    ListView1.ListItems.Add , , "test2"
    ListView1.ListItems.Add , , "test3"
    mIsItem = False
    End SubPrivate Sub ListView1_Click()
        If mIsItem = False Then
            MsgBox "nothing is clicked"
        End If
        
        'do something what you want
        mIsItem = False
    End SubPrivate Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
        mIsItem = True
        'do something what you want
    End Sub
      

  17.   

    对于第二个问题
    Private Sub Form_Load()
    Me.Hide
        'do something what you want
    Me.Show
    End Sub
      

  18.   

    大数据量SQL语句查询时候花费的时间比较长。
    那么你可以在
    窗体.SHOW之前把查询做完。
    赋给一个公用记录集然后窗体.SHOW再把功用记录集里的数据赋给要显示数据的控件!
    这样做可以节省出执行查询操作的时间!这种龌龊的招我都能想出来!!!
    晕死!
      

  19.   

    我也没细看上面的,我的解决办法是加一个空格行进去,就是有一行item值是一些空格.如果让这行选中,哪么就像是什么也没选一样了吧.呵呵.如果和上面的重了就不算了.88.
      

  20.   

    Private Sub Form_Load()
        Me.Hide
         "执行操作的语句"
        Me.Show
    End Sub
    难道这样做不可以吗?
      

  21.   

    to : rexyudl(隼) 
    我在能加me.hide的所有地方都加了,可是就是不行
    也不知道哪里出现了毛病
      

  22.   

    你自己去做个实验啊!

    Dim i As Long
    Dim j As Long
    Private Sub Form_Load()
        Me.Hide
            For i = 1 To 100000
                For j = 1 To 1000
                    x = j + 1
                Next j
            Next i
        Me.Show
    End Sub
    看看出什么效果!
    我认为完全可以满足你的要求啊!
    你可能还是有地方没有用对吧?
      

  23.   

    Dim i As Long
    Dim j As Long
    Private Sub Form_Load()
        Me.Hide
        
    End Sub一至运行到End sub 都是看不见的,也是我需要的效果,
    但是End Sub这句运行结束,窗出来了,不知道为啥...
      

  24.   

    第二个问题是否可以这样:
    把加载数据及显示窗体的代码写在Sub Main中(当然工程的启动属性要改为Sub Main喽)
    而不是在窗体的Load事件中加载数据。
    需要两个窗体,属性全部使用默认和一个模块
    Form1中添加一个ListBox和一个Label,同样全部使用默认属性
    Form2为启动画面'以下代码在模块中
    Private Declare Function timeGetTime Lib "winmm.dll" () As LongPublic Sub main()
    '  Load Form1
      Form2.Show
      Dim starttime As Long
      Dim endtime As Long
      Dim i As Long
      DoEvents
      starttime = timeGetTime
      For i = 0 To 200000
        Form1.List1.AddItem Format$(i, "000000")
      Next i
      endtime = timeGetTime
      Form1.Label1.Caption = "用时:" & endtime - starttime & "ms"
      Unload Form2
      Form1.Show
    End Sub
      

  25.   

    If listview1.SelectedItem Is Nothing Then
            msgbox "点了空白的"    
        End If
      

  26.   

    简单:
    Form2.Tag="Form2"
    Form2.Show 1
      

  27.   

    你也可以在Form2上添加一个Command(Visible=False)并添加代码:
    Form1.Show
    Unload Form2
    修改Sub Main为:
    Public Sub main()
    '  Load Form1
      Form2.Show
      Dim starttime As Long
      Dim endtime As Long
      Dim i As Long
      DoEvents
      starttime = timeGetTime
      For i = 0 To 100000
        Form1.List1.AddItem Format$(i, "000000")
      Next i
      endtime = timeGetTime
      Form1.Label1.Caption = "用时:" & endtime - starttime & "ms"
      Form2.Label1.Caption = "数据加载完毕。"
      Form2.Command1.Visible = True
    '  Unload Form2
    '  Form1.Show
    End Sub
    这样一来,如果你不按Form2上的Command的话,Form1将不会被显示。
      

  28.   

    每一次要执行
    listview1.ListItems.Clear
    listview1空白的多余行
      

  29.   

    咳,仅仅是需要form_load事件后还是不需要显示的话就用下面这段代码:
    一个窗体,一个timer,timer是为了每隔一段时间提醒你一下以便你决定窗体是否显示出来Private Sub Form_Load()
        Me.Hide
        Positionx = Me.Left
        Positiony = Me.Top          '保存当前位置
        
        Me.Left = -10000
        Me.Top = -10000
        
        MsgBox "窗体现在隐藏到屏幕的不可见区域"
        
        '这里可以做你想做的事情
        
        Timer1.Enabled = True
        Timer1.Interval = 10000
        Me.Show
    End SubPrivate Sub Timer1_Timer()
        If MsgBox("现在是否显示窗体?此提示每10秒显示一次,以便你能做出决定", vbYesNo) = vbYes Then
            Me.Left = Positionx
            Me.Top = Positiony
        End If
    End Sub
      

  30.   

    其实你可自己编函数。
    1。工程的启动改为sub main,先调用一函数装载窗体(load),处理完数据后show 出此窗体。
    2。把窗体属性改为autoredraw属性改为true.
    3。自己多多调试,但最好不要单步调试,那样可能不正常。
      

  31.   

    to  chewinggum(口香糖·向星星前进) 
    虽然你的方法不是常规方法,但是针对我的问题却很有效,谢谢啦
    保留三天后结贴。
      

  32.   

    二、有什么方法可以实现当一个窗体完成装载好了的时候才显示
    答:load()事件