複数の画面からひとつを選択しアクティブにするには?

解決


メロディ  2008-12-02 10:33:07  No: 140935  IP: 192.*.*.*

ネットでいろいろ参考にしたんですが、さっぱりわからないので
ご教授願いたく質問させていただきます。

まずあるアプリケーションで複数ファイルが開いていたとします。
複数あるファイル中から、ファイル名で指定してアクティブにさせる
方法があればアドバイスをお願いします。

編集 削除
YuO  2008-12-02 11:07:13  No: 140936  IP: 192.*.*.*

> まずあるアプリケーションで複数ファイルが開いていたとします。

ファイル「が」開くことはありえません。
アプリケーションがファイル「を」開くのです。


> 複数あるファイル中から、ファイル名で指定してアクティブにさせる

ファイルをアクティブにさせるとは何をどうしようとしているのですか。
Windowsのファイルシステムを普通に使う場合において,アクティブ・非アクティブという概念はないと思いますが。

編集 削除
メロディ  2008-12-02 11:33:51  No: 140937  IP: 192.*.*.*

質問をしている立場ではありますが、質問に間違った(理解できない)内容があったとはいえ、初心者といっているのでそれをあのような突っ込み(ものいい)をされると、嫌な気分になってしまいますね。
でもいわれてみれば、日本語が変だったり理解できてないこともあるんで、
以後気をつけます。
思ったことは伝えたい性質なので、上の内容に関してはここまでにします。

質問を変えます。
複数のウィンドウの中から目的のウィンドウをアクティブにしたいです。

例)  ウィンドウが3つ(A,B,C)
    Aがアクティブ状態の時、Cをアクティブにさせるには?

質問の内容に不備があるかもしれませんが、よろしくお願いします。

編集 削除
VB初心者  2008-12-02 11:46:48  No: 140938  IP: 192.*.*.*

え〜と例えば今Aがアクティブになっていて
Cをアクティブにしたいときに
ただ単にCのウィンドウをクリックしてアクティブにするのはだめなんでしょうか?

編集 削除
River  2008-12-02 11:54:50  No: 140939  IP: 192.*.*.*

プログラムでやりたいのならWindowsAPIの"SetActiveWindow"関数を
使えばできるんじゃないでしょうか?

編集 削除
WAKE  2008-12-02 11:57:00  No: 140940  IP: 192.*.*.*

>嫌な気分になってしまいますね。

>思ったことは伝えたい性質なので

教えてもらう、という立場ではないですね。
権利を主張しているのみ。

>ウィンドウをアクティブにしたいです。

ということは

>アクティブ・非アクティブという概念はないと思いますが。

という点についてはあくまでも否定するわけですか?

編集 削除
メロディ  2008-12-02 12:02:12  No: 140941  IP: 192.*.*.*

VB初心者ありがとうございます。
アドバイスいただいたのはマウスでの操作のことでしょうか?
マウス操作ではなく、VBプログラムで考えています。

編集 削除
メロディ  2008-12-02 12:05:04  No: 140942  IP: 192.*.*.*

Riverさんありがとうございます。
WindowsAPIの"SetActiveWindow"関数  ですね!
さっき調べてたらその関数でてきました。
ただ使い方がわからない初心者のため、うまく活用できるかわかりません。
ちょっとがんばってみます。

編集 削除
YuO  2008-12-02 12:06:13  No: 140943  IP: 192.*.*.*

> 複数のウィンドウの中から目的のウィンドウをアクティブにしたいです。

・System.Windows.Window.Activate メソッド
http://msdn.microsoft.com/ja-jp/library/system.windows.window.activate.aspx
・System.Windows.Forms.Form.Activate メソッド
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.form.activate.aspx
このあたりでしょうか。

編集 削除
メロディ  2008-12-02 13:20:47  No: 140944  IP: 192.*.*.*

YuOさんありがとうございます。
初心者ゆえ、MSDNで解決できないかもしれませんが、参考にしてみます。

編集 削除
メロディ  2008-12-02 16:09:11  No: 140945  IP: 192.*.*.*

いろいろ調べたんですが、わかりません・・。
WindowsAPIの"SetActiveWindow"関数や、YuOさんが助言いただいたメソッド
を使ってどのようなコードになるのでしょうか?
簡単なものでいいので、例になるようなコードを教えていただけないでしょうか?

編集 削除
matsu  2008-12-02 17:36:13  No: 140946  IP: 192.*.*.*

>WindowsAPIの"SetActiveWindow"関数や、YuOさんが助言いただいたメソッド
>を使ってどのようなコードになるのでしょうか?

SetActiveWindowのサンプルはここのサイトにありますよ。

http://madia.world.coocan.jp/vb/API/SetActiveWindow.htm

VBのバージョンを書いていませんがいくつでしょうか?
サンプルはVB6のものです。

編集 削除
お宅  2008-12-05 00:31:35  No: 140947  IP: 192.*.*.*

>メロディ 2008/12/02(火) 11:33:51 <初心者> 
http://www.vcppclub.com/bbs01/wforum.cgi?mode=allread&no=4734&page=10
のような似た例もあるので、余り過敏に反応しなくても良いのでは?


それは冗談として
コードが欲しいのは分かるんですがmatsu さんが言われているように
環境を書かないと適切なコードが提示できないのでは?

環境と、現在どのようなコードを書いていてどこが分からないのか
提示したほうがよいかと。

編集 削除
メロディ  2009-01-27 10:47:31  No: 140948  IP: 192.*.*.*

長い間返答もなく申し訳ありません。
解決いたしましたのでCloseとさせていただきます。

編集 削除