DOBON.NETプログラミング道掲示板

■35108 / 親記事)  読み出し元フォームの位置取得方法
  
□投稿者/ よっし〜 一般人(9回)-(2022/07/22(Fri) 14:38:19)
  • アイコン環境/言語:[VS2013] 
    分類:[.NET] 

    お疲れ様です。また簡単な事かもしれませんが、おおしえくださいませ。

    現在Aフォームから別のBフォームをShowDialogで表示し、BフォームのOpacityを50%に設定して重ねて表示したいと考えております。
    その際、Aフォームのタイトルバーの下に表示したいので、大きさはAフォームのClientSizeで取得出来ますが左上の位置の取得する方法が分かりません。
    ここで言うBホームの左上とは「AフォームのClientSizeの0,0の位置」です。

      (_OYForm=親フォーム)
    Private Sub Form2_Load(sender As Object, e As EventArgs) Handles Me.Load
    Me.Location = ??
    Me.Size = _OYForm.ClientSize
    End Sub

    ClientRectangleのLeftとTopかと思いましたが、常に0でした(当たり前でしょうが・・)

    以上、宜しくご教示のほどお願いいたします。



マルチポストを報告
違反を報告
引用返信 削除キー/
■35109 / ResNo.1)  Re[1]: 読み出し元フォームの位置取得方法
□投稿者/ 魔界の仮面弁士 大御所(1437回)-(2022/07/22(Fri) 17:49:46)
  • アイコンNo35108に返信(よっし〜さんの記事)
    > ここで言うBホームの左上とは「AフォームのClientSizeの0,0の位置」です。

    rect = targetForm.RectangleToScreen(targetForm.ClientRectangle)

    でスクリーン座標が得られそうですが、これでは駄目でしょうか。
    ※未検証です
違反を報告
引用返信 削除キー/
■35110 / ResNo.2)  Re[2]: 読み出し元フォームの位置取得方法
□投稿者/ よっし〜 一般人(10回)-(2022/07/25(Mon) 09:54:45)
  • アイコン
    No35109に返信(魔界の仮面弁士さんの記事)
    > ■No35108に返信(よっし〜さんの記事)
    >>ここで言うBホームの左上とは「AフォームのClientSizeの0,0の位置」です。
    > rect = targetForm.RectangleToScreen(targetForm.ClientRectangle)
    > でスクリーン座標が得られそうですが、これでは駄目でしょうか。
    
    魔界の仮面弁士様、早速のご教示頂きまして有り難うございます。
    
    お教え頂いた内容ですが・・・完璧でございます。
    
            Dim A As Rectangle = Oya.RectangleToScreen(Oya.ClientRectangle)
            Me.Location = New Point(A.Left, A.Top)
            Me.Size = New Size(A.Width, A.Height)
    
    どうも有り難うございました。

解決み!
違反を報告
引用返信 削除キー/



スレッド内ページ移動 / << 0 >>

このスレッドに書きこむ

Mode/  Pass/


- Child Tree -