- - PR -
System.Diagnostics.Processでのofficeアプリ起動制御
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-09-08 10:52
おつかれさまです。
画面からボタン押下時にofficeアプリケーションを System.Diagnostics.Processを使用し起動するプログラム作成しました。 アプリケーションは起動しますが、 そのアプリケーションを終了した後に 同画面上にあるテキストボックスにフォーカスを移動し 、ENTERキーを押すと先ほどのアプリケーションを起動する Clickイベントが発生してしまいます。(一回だけ) *起動するのはテキストボックスの時だけです。 この現象をどのようにすれば回避できるでしょうか。 よろしくお願いします。 [発生の流れ] ボタン押下→OFFICEアプリケーション起動 ↓ アプリケーション終了 ↓ テキストボックスにフォーカスを移動 ↓ ENTERキー押下 ↓ 先ほどのアプリケーションが起動される。 [VB.NET] AddHandler Me.btnOpen.Click, AddressOf Ctrl_Click Private Sub Ctrl_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Try Select Case sender.name Case btnOpen.Name SClickbtnOpen() 'ボタンイベント End Select Catch ex As Exception Call S_SError(ex) End Try End Sub Public Sub SClickbtnOpen() 'ボタンイベント Dim result As Boolean Dim errCod As String Try Dim P As System.Diagnostics.Process = System.Diagnostics.Process.Start(PASS.txt) 'アプリケーションの起動 If P Is Nothing Then Else P.WaitForExit() End If P = Nothing End If End With Catch ex As Exception Throw ex Finally End Try End Sub | ||||
|
投稿日時: 2006-09-08 15:14
ミニマム コードで試してみましたが、再現しませんね。 "テキストボックスにフォーカスを移動" については、'マウス' と 'Tab キー' 両方で試しました。 UpdateDefaultButton メソッド絡みの不具合かと思いましたが、 MDI 子フォームでない限りは起こらないと考えています。 タイトルに "Office アプリ" と書いてありますけど、この記述は不要のように思えます。 このご質問、Office アプリケーションである必要はないのですよね? それと、コードを書いて頂けるのはありがたいですが、ミニマム コードで提示してください。 ミニマム コードで試すことで、問題の切り分けができることが多いです。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-09-08 15:35
お疲れ様です。
現象はMDI子フォームで発生しています。 今のところオフィスアプリケーションの時に起こる事象なのです。 よろしくお願いします。 | ||||
|
投稿日時: 2006-09-08 16:10
最初からかいとけよ。そして少しは申し訳なく思え。 今回は回答者がよかったからこそ、ない情報を掘り出すことができたんだぞ。 運がよかったと思うべきだし。お前の少ない情報からここまで書いてくれたことに感謝を示すべき。 で本題だが過去ログを検索してみようぜ。解決策が書いてあるからさ。 [ メッセージ編集済み 編集者: ぶさいくろう 編集日時 2006-09-08 16:12 ] | ||||
|
投稿日時: 2006-09-08 16:35
過去ログを検索するのであれば、回避策 "自体" を知らないと検索が難しいみたいです。
「MDI + UpdateDefaultButton」 とか 「MDI + ProcessDialogKey」 あたりになるでしょうか。 # 'UpdateDefaultButton' という単語は、私の発言中に既に出てきてはいますけども... _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-09-08 17:06
お疲れ様です。
大変申し訳なく思ってます。 Protected Overrides Sub UpdateDefaultButton() End Sub を使用することにより、回避することができました。 少ない情報から導いていただき、ありがとうございました。 |
1