Re: コンボボックスのClickイベント内でUnloadさせたいが。。


[コメントツリー表示を見る] [発言時刻順表示を見る]

Posted by Uz on 1999/11/16 00:37:28

In Reply to: コンボボックスのClickイベント内でUnloadさせたいが。。 Posted by さち on 1999/11/15 19:22:42


    > ひとつ質問があります。
    ハイハイ、なんでしょう。

    > 検索の際に、DBエラーなどが発生した際には、フォームをUnload
    > させるようにClickイベント内に組んだのですが、Clickイベント
    > 内ではUnloadできないらしく、「エラー時にはフォームを閉じる」
    > ということが実現できません。。

    これ前にもありました。
    下の方に
    ”Re: Loadしたコントロール配列の削除”
    というのがあると思います。
    これは Load したコントロールを削除できない という事だったんですけど、
    理由はいっしょでしょう。
    ComboBoxのクリックではUnloadできないようです。
    このときは、かなり邪道な方法で逃げたのですが、 <実用に耐えれませんでした。(--;

    なので、以下の方法でどうでしょうか。

    '****************************
    Option Explicit

    Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Const WM_CLOSE = &H10

    Private Sub Combo1_Click()
    If Combo1.ListIndex = 0 Then
    Form2.Show
    ElseIf Combo1.ListIndex = 1 Then
    Call PostMessage(Form2.hwnd, WM_CLOSE, 0, 0)
    End If
    End Sub

    Private Sub Form_Load()
    With Combo1 'style = 2
    .AddItem "LOAD"
    .AddItem "UNLOAD"
    End With
    End Sub

    '****************************
    フォームを2枚用意して(Form1,Form2)、Form1にCombo1を置きます。
    あとはForm1にこのソースを張りつけて、テストして見てください。
    きっと、ご希望の動作が実現できると思いますよ。(エラーチェック等は自分でしてね。)

    ご報告待ってます(^^)

    では。


記事スレッド一覧