C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 >>
■42607  Re[1]: 別フォームのコントロールのTextが変更できない
□投稿者/ かずき -(2009/10/19(Mon) 12:24:28)
>
    > フォームAからShowDialog()でフォームBを呼び出しています。
    この部分を詳しく教えて下さい。
    多分
    
    Dim f As New フォームB
    f.ShowDialog()
    
    みたいにしてるんじゃないですか?
    フォーム名.プロパティ名でアクセスするときのフォームのインスタンスは暗黙的に
    作られるインスタンスなので、Newしたフォームとは別物です。
    多分、そのせいで変更されてないのではないでしょうか。
    
    
記事No.42605 のレス /過去ログ73より / 関連記事表示
削除チェック/

■92266  Re[3]: MDI子ウインドウを最前面にする方法
□投稿者/ とっちゃん -(2019/09/06(Fri) 13:08:14)
    No92265 (むん さん) に返信
    > ありがとうございます。
    >
    > ActivateMdiChildを試してみましたがうまくいきませんでした。
    > https://dobon.net/vb/dotnet/form/mdiapplication.html
    > このページには
    > 親フォームから指定した子フォームをアクティブにするためのメソッドとして、Form.ActivateMdiChildメソッドがありますが、これはprotectedメンバであり、ヘルプによると、「このメンバは、.NET Framework インフラストラクチャのサポートを目的としています。
    > 独自に作成したコード内で直接使用することはできません。」とのことです。
    > と書かれてあるので使えないのではないでしょうか?
    >
    ActivateMdiChild() メソッドがうまくいかないとすると、アクティブにしたい Mdi子フォームの、Activate() メソッドを呼び出す形でもうまくいかない気がします。

    ボタンを押したら何をするのでしょう?
    もしかしたらそのあたりの段取りに問題があるのかもしれません。



    > topmostをTrueにする方法も既に試していますが
    >
    > https://www.papy.in/bbs/vb1/200507/05070056.html
    >
    > 使えないと書かれてあるページが見つかりました。
    >
    子ウィンドウは駄目なのか。残念ですがこちらは対処方法はないです。
    Windows という OS の仕組みに起因する問題なので、少なくとも Windows を使っている限り対処方法はないと思います。

    それでも、どうしても手前に配置したいのなら、モードレスダイアログとして表示させるくらいしかないと思います。
記事No.92263 のレス /過去ログ159より / 関連記事表示
削除チェック/

■92269  Re[4]: MDI子ウインドウを最前面にする方法
□投稿者/ 魔界の仮面弁士 -(2019/09/06(Fri) 14:00:08)
    No92266 (とっちゃん さん) に返信
    >>ActivateMdiChildを試してみましたがうまくいきませんでした。
    > ActivateMdiChild() メソッドがうまくいかないとすると、アクティブにしたい Mdi子フォームの、
    > Activate() メソッドを呼び出す形でもうまくいかない気がします。

    下記で試した限りでは、Activate の方が良いみたいです。
    ActivateMdiChild だと、フォーカス遷移が期待動作しないことがあるようで。


    'コントロールを何も貼ってない空の Form1
    Partial Public Class Form1
      Inherits Form
      Private Child1, Child2, Child3 As Form
      Private WithEvents Button1, Button2 As Button
      Public Sub New()
        ' InitializeComponent() '←今回は実験コードなので、デザイナコードの有無はあまり関係ない

        'アクティブ化させるためのボタンを配置
        Dim pnl As New Panel() With {.Dock = DockStyle.Top}
        Button1 = New Button() With {.Text = "1", .Dock = DockStyle.Left}
        Button2 = New Button() With {.Text = "2", .Dock = DockStyle.Left}
        pnl.Controls.Add(Button2)
        pnl.Controls.Add(Button1)
        Controls.Add(pnl)

        'MDI の準備
        Me.IsMdiContainer = True
        Child1 = New Form() With {.MdiParent = Me, .Text = "Child1"}
        Child2 = New Form() With {.MdiParent = Me, .Text = "Child2"}
        Child3 = New Form() With {.MdiParent = Me, .Text = "Child3"}

        'MDI 子フォームを表示
        Child1.Show()
        Child2.Show()
        Child3.Show()
      End Sub

      Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' ActivateMdiChild(Child1)
        Child1.Activate()
      End Sub

      Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        'ActivateMdiChild(Child2)
        Child2.Activate()
      End Sub
    End Class
記事No.92263 のレス /過去ログ159より / 関連記事表示
削除チェック/

■92271  Re[5]: MDI子ウインドウを最前面にする方法
□投稿者/ とっちゃん -(2019/09/06(Fri) 14:44:23)
    No92269 (魔界の仮面弁士 さん) に返信
    > ■No92266 (とっちゃん さん) に返信
    > >>ActivateMdiChildを試してみましたがうまくいきませんでした。
    >>ActivateMdiChild() メソッドがうまくいかないとすると、アクティブにしたい Mdi子フォームの、
    >>Activate() メソッドを呼び出す形でもうまくいかない気がします。
    >
    > 下記で試した限りでは、Activate の方が良いみたいです。
    > ActivateMdiChild だと、フォーカス遷移が期待動作しないことがあるようで。
    >
    >
    フォローありがとうございます。
    なるほど。。。
    Activate が内部的に呼びだしてるのかもしれませんね。
    それだと、状況次第ではうまくいかないなどがありそうです。
記事No.92263 のレス /過去ログ159より / 関連記事表示
削除チェック/

■102303  Re[1]: 抽象クラスを継承したクラスのインスタンスについて
□投稿者/ 魔界の仮面弁士 -(2023/08/17(Thu) 19:02:37)
    No102293 (高橋 さん) に返信
    > 開発環境:Microsoft Visual Studio Professional 2022
    > 使用言語のバージョン:.NET 6.0

    それは「使用言語のバージョン」ではありません。
    「ターゲット フレームワークのバージョン」です。

    Visual Studio 2022 においては
    .NET Core 2.2 以下および .NET Framework をお使いの場合、言語バージョンは通常、C# 7.3 になります。
    .NET Core 3.x をお使いの場合、言語バージョンは通常、C# 8 になります。
    .NET 5 をお使いの場合、言語バージョンは通常、C# 9 になります。
    .NET 6 をお使いの場合、言語バージョンは通常、C# 10 になります。
    .NET 7 をお使いの場合、言語バージョンは通常、C# 11 になります。

    .NET 8 の場合、正式リリース後は C# 12 向けとなるでしょう。


    これらはあくまでも既定値であり、.NET Framework 4.8.1 で C# 11 を選択したり、
    .NET 6 で、あえて C# 3 を選択するといった組み合わせも可能ですが、
    通常はほぼ間違いなく、上記の組み合わせでの運用となるはずです。
記事No.102293 のレス /過去ログ178より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -