NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

プログラム中での前面・背面設定

解決済み
解決策を見る

※自身で調査した結果と、仮ではありますが解決策を記載します。

 

どうやら、2013のクラス階層で関連がありそうな項目を一通り見てみたのですが

前面・背面に関するメソッド、プロパティを持っていないようでした。

 

今回下名が作成するプログラムでは、実行中に前面背面を変更する事が無いため

現時点ではフロントパネルで、ボタン33から降順に1個ずつ「最前面へ移動」を実行しておくことにします。

 

ただ、この方法はボタン数が増えた時に再設定しないといけない可能性がある

他のコントロールが増えた時にそのコントロールとの前面背面設定を漏らす可能性が高いため、あくまで妥協案としておきます。

 

以上です、もし他に解決策をご存じの方がいらっしゃいましたらよろしくお願いします。

0 件の賞賛
メッセージ11/14
2,536件の閲覧回数

toffyさん、こんにちは。

 

他に解決策はないか?ということなので、他の方の回答に追加で申し上げます。

ただし、

わたしがNIさんの講座で習ったことを、そのまま伝えるだけなので、

本当にあってるのか?理屈はどうなのか?はわかりません(ゴメンナサイ)。

ですから、参考程度にお聞きください。

 

toffyさんと同様のことを、講座で質問した方がいらして、講師の方の回答は、

  「制御器の重ね書きはパフォーマンス上推奨できない」

というものでした。

では、どうすればよいのか?という質問については、

  「Tab制御器を使い、Tab自体の色をTransparentにすればよい」

と習いました。

 

toffyさんの場合は、タブを33個作って、タブ毎にコントロールを配置し、

タブを透明色にして、表示するタブを切り替えればよい、ということです。

 

改修作業とのことですから、このような変更はできないかもしれませんが、

ご参考になりましたら幸いです。  --- S.A.M.

0 件の賞賛
メッセージ12/14
2,490件の閲覧回数

S.A.M.さん、こんにちは。

 

「制御器の重ね書き」自体をNI様が推奨していないのですね…。

 

ただ、今回は「33個のボタンの座標を外部から読みこむファイルで自由に設定できてそれが重なる時もありますし、重ならない時もある。」

というちょっと特殊な事をしたいのでタブ切替えでの実現は難しそうです。

 

またボタンは円形なのですが、一部だけ重なっている場合には背面からはみ出ているボタンも一応押せる形を取りたいと思っています。

タブだと選択したボタン以外が表示されないため難しいと思いました。

 

 

今回の案件ではちょっと無いのですが、制御器同士を重ねる時には参考にさせて頂きます。

 

以上です、返信ありがとうございました。

0 件の賞賛
メッセージ13/14
2,461件の閲覧回数
解決策
トピック作成者toffyが受理

別の投稿に中解決に至ることが出来ましたので追記致します。

 

ショートカットキーで行う処理を”実際にはキーを押下せずに実行する方法”があることを教えて頂きました。

Programmatically Simulate Key Strokes in LabVIEW

 

そこで今回はこの方法を用いて、ブール33からブール1まで降順で「選択 → Ctrl+Shift+K」を実行する形をとろうと思います。

 

アドバイスして頂いた皆様、ありがとうございました。

(この方法はLabVIEW2013までの方法です。

LabVIEW2014以降はKONDOH様の方法が正しいやり方だと思いますのでご注意下さい)

0 件の賞賛
メッセージ14/14
2,310件の閲覧回数