08-11-2015 09:29 PM
※自身で調査した結果と、仮ではありますが解決策を記載します。
どうやら、2013のクラス階層で関連がありそうな項目を一通り見てみたのですが
前面・背面に関するメソッド、プロパティを持っていないようでした。
今回下名が作成するプログラムでは、実行中に前面背面を変更する事が無いため
現時点ではフロントパネルで、ボタン33から降順に1個ずつ「最前面へ移動」を実行しておくことにします。
ただ、この方法はボタン数が増えた時に再設定しないといけない可能性がある
他のコントロールが増えた時にそのコントロールとの前面背面設定を漏らす可能性が高いため、あくまで妥協案としておきます。
以上です、もし他に解決策をご存じの方がいらっしゃいましたらよろしくお願いします。
08-13-2015 08:57 AM
toffyさん、こんにちは。
他に解決策はないか?ということなので、他の方の回答に追加で申し上げます。
ただし、
わたしがNIさんの講座で習ったことを、そのまま伝えるだけなので、
本当にあってるのか?理屈はどうなのか?はわかりません(ゴメンナサイ)。
ですから、参考程度にお聞きください。
toffyさんと同様のことを、講座で質問した方がいらして、講師の方の回答は、
「制御器の重ね書きはパフォーマンス上推奨できない」
というものでした。
では、どうすればよいのか?という質問については、
「Tab制御器を使い、Tab自体の色をTransparentにすればよい」
と習いました。
toffyさんの場合は、タブを33個作って、タブ毎にコントロールを配置し、
タブを透明色にして、表示するタブを切り替えればよい、ということです。
改修作業とのことですから、このような変更はできないかもしれませんが、
ご参考になりましたら幸いです。 --- S.A.M.
08-16-2015 07:24 PM
S.A.M.さん、こんにちは。
「制御器の重ね書き」自体をNI様が推奨していないのですね…。
ただ、今回は「33個のボタンの座標を外部から読みこむファイルで自由に設定できてそれが重なる時もありますし、重ならない時もある。」
というちょっと特殊な事をしたいのでタブ切替えでの実現は難しそうです。
またボタンは円形なのですが、一部だけ重なっている場合には背面からはみ出ているボタンも一応押せる形を取りたいと思っています。
タブだと選択したボタン以外が表示されないため難しいと思いました。
今回の案件ではちょっと無いのですが、制御器同士を重ねる時には参考にさせて頂きます。
以上です、返信ありがとうございました。
09-08-2015 02:55 AM
※別の投稿に中解決に至ることが出来ましたので追記致します。
ショートカットキーで行う処理を”実際にはキーを押下せずに実行する方法”があることを教えて頂きました。
Programmatically Simulate Key Strokes in LabVIEW
そこで今回はこの方法を用いて、ブール33からブール1まで降順で「選択 → Ctrl+Shift+K」を実行する形をとろうと思います。
アドバイスして頂いた皆様、ありがとうございました。
(この方法はLabVIEW2013までの方法です。
LabVIEW2014以降はKONDOH様の方法が正しいやり方だと思いますのでご注意下さい)