あなたのサンプルコードも機能することに驚いています。MessageBox は、設定した方法で 1 つの値のみを返すことができます。MessageBox からの戻りコードをチェックしている場合、4 番目のパラメーターを YesNo!、YesNoCancel! にする必要があります。
これを行った人は、自分が何をしているのかわからないと思います。このロジックにオプションがまったくないというのはまったく意味がありません。
ユーザーが応答できる質問にしますか? もしそうなら、次のようなことをしてください:
integer li_rc
li_rc = Messagebox("Confirm your intentions","Do you want to close the tab?",Question!,YesNo!,2)
if li_rc = 1 then
// user clicked YES because it is the first option of YesNo!
else
// user clicked NO because it is the second option of YesNo!
end if
参考:ユーザーがEnterキーを押した場合、最後の引数はデフォルトのボタンです
ウィンドウには、閉じるときに発生する closequery イベントがあります。そのイベントで処理を実行して、ウィンドウを閉じないようにすることができます。タブにこのようなものがあるかどうかはわかりませんが、おそらくこの質問を修正してから、閉じることを禁止できます. ユーザーに何かを伝えたいだけの場合は、 MessageBox("Message Subject", "Message Body", Exclamation!) を実行するだけで OK! を使用する必要はありません。これがデフォルトです
ここにアイデアがあります:
タブ コントロールのクリックされたイベントを調べます。タブを閉じているコードがおそらくそこにあります。アクセス許可を確認し、終了ロジックをバイパスする追加のロジックを配置できます。または、ユーザーが無効に見える X を閉じたり、別の写真を表示したりできない場合は、ShowPicture プロパティを false に設定できます。