- PR -

モードレスダイアログの位置を他のフォームで変更したい

投稿者投稿内容
NEO
大ベテラン
会議室デビュー日: 2005/10/02
投稿数: 104
投稿日時: 2006-08-24 00:25
VS2005です。

あるフォーム(アプリケーションのメインフォーム)から表示したモードレスダイアログの位置をそのフォームで変更したいのですが、変更できません。

Private dlg as Dialog1 = New Dialog1 <-- モードレスダイアログ
:
dlg.Show()

あるイベントで、dlg.Location = New Point(x, y) <-- これが効かない
また、Dialog1にあるPublicメソッドをdlg.Method1()のようにして呼びだし、
そのメソッド内で、Me.Location = New Point(x, y) とやっても変更できませんでした。
何か分かる方、教えてください。
Hongliang
ぬし
会議室デビュー日: 2004/12/25
投稿数: 576
投稿日時: 2006-08-24 00:43

やり方は合ってるので、その dlg をローカル変数で New したりしてないかとかその辺りをチェックですね。
NEO
大ベテラン
会議室デビュー日: 2005/10/02
投稿数: 104
投稿日時: 2006-08-24 00:49
引用:

Hongliangさんの書き込み (2006-08-24 00:43) より:

やり方は合ってるので、その dlg をローカル変数で New したりしてないかとかその辺りをチェックですね。




Private宣言してますけど・・・。
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-08-24 01:19
引用:

NEOさんの書き込み (2006-08-24 00:49) より:
引用:

Hongliangさんの書き込み (2006-08-24 00:43) より:

やり方は合ってるので、その dlg をローカル変数で New したりしてないかとかその辺りをチェックですね。




Private宣言してますけど・・・。


全然答えになっていないんですけど・・・。
素直に文章を見るといいと思うよ。
NEO
大ベテラン
会議室デビュー日: 2005/10/02
投稿数: 104
投稿日時: 2006-08-24 07:51
引用:

全然答えになっていないんですけど・・・。
素直に文章を見るといいと思うよ。



ローカル宣言してないです。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-24 10:14
NEO さん、こんにちは。

引用:

NEOさんの書き込み (2006-08-24 00:25) より:

あるフォーム(アプリケーションのメインフォーム)から表示したモードレスダイアログの位置をそのフォームで変更したいのですが、変更できません。

Private dlg as Dialog1 = New Dialog1 <-- モードレスダイアログ
:
dlg.Show()

あるイベントで、dlg.Location = New Point(x, y) <-- これが効かない
また、Dialog1にあるPublicメソッドをdlg.Method1()のようにして呼びだし、
そのメソッド内で、Me.Location = New Point(x, y) とやっても変更できませんでした。


このような場合は、ミニマム コードを書くと問題解決を図れます。

コード:

    Private ownedForm2 As Form2

    Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Me.ownedForm2 = New Form2()
        Me.ownedForm2.Show(Me)
    End Sub

    Private Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
        If Me.ownedForm2 IsNot Nothing Then
            Me.ownedForm2.Location = New System.Drawing.Point(37, 564)
        End If
    End Sub


今の切り出されたソースからでは、どなたであっても想像しかできないと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
NEO
大ベテラン
会議室デビュー日: 2005/10/02
投稿数: 104
投稿日時: 2006-08-27 12:52
別に変わったことはしてません。

Showのときに、引数を指定していないことくらいでしょうか。
ControlBoxなしです。
原因と考えられるような設定(プロパティなど)が分かれば教えてください。

このアプリは、デュアルモニタ環境出動作することを想定していて、
モードレスダイアログがセカンドモニタで表示されるようにするため、モードレスダイアログ表示時に、親フォームでダイアログを移動しています。
これはデュアルモニタ環境では問題なく移動しますが、当然のことながらシングルモニタ環境では指定の位置には移動しません。
アプリの機能として、モードレスダイアログの位置を起動時の位置に戻すというものがあり、この機能の実現が出来ない状態です。
デュアルモニタ環境ではまだ試していませんが、シングルモニタ環境でモニタ内の座標を指定しても移動しないんです。
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2006-08-27 12:56
引用:

原因と考えられるような設定(プロパティなど)が分かれば教えてください。



StartPosition とか。

スキルアップ/キャリアアップ(JOB@IT)