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

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

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

全過去ログを検索

<< 0 >>
■37099  Re[5]: 環境変数の展開を一時的に無効にするには?
□投稿者/ aetos -(2009/06/12(Fri) 16:37:56)
>
    No37097 (みきぬ さん) に返信
    > どういう状況で困るのか、よくわからないです。

    すいません、なんか俺もよくわからなくなってきました。
    昔何かで確かに困ったことがあったのですけど。

    とりあえず解決済みにさせて頂きます。
    ごめんなさいでした。
記事No.37083 のレス / END /過去ログ64より / 関連記事表示
削除チェック/

■39105  if文で…
□投稿者/ へたれ -(2009/07/30(Thu) 11:59:22)

    分類:[C#] 

    つい最近までVBを使用していて、5日ほど前にC#の勉強をするよう言われて
    今プログラムを作成中なのですが…
    プログラミングの知識が非常に薄いため初歩的すぎる部分で躓いています…。

    OracleDataReaderでデータを読み込んで、その読み込んだデータの値が0だった場合は「正常終了」、
    1だった場合は「異常終了」と表示させたいのですが、
    そのためにif文を書くとエラーが出ます…。
    コードは以下です。
    String mySQL2 = "簡単なSELECT文";
    OracleCommand myCmd2 = new OracleCommand(mySQL2, cnn);

    OracleDataReader myRead2 = myCmd2.ExecuteReader();

    while (myRead2.Read())
    {
    if (myRead2.GetValue(0) = 0)
    lblStat.Text = "正常終了";
    else
    lblStat.Text = "異常終了";
    }
    エラーが出るのは「if (myRead2.GetValue(0) = 0)」の部分で、
    エラーの内容は「代入式の左辺には変数、プロパティ、またはインデクサを指定してください」と、
    「型'object'を'bool'に暗黙的に変換できません。明示的な変換が存在します。(castが不足していないかどうかを確認してください。)」です。

    どなたかお答えをよろしくお願いします。
親記事 /過去ログ67より / 関連記事表示
削除チェック/

■44078  複数のpictureBoxを一度に動かす方法
□投稿者/ sun -(2009/11/26(Thu) 18:27:29)

    分類:[C#] 

    はじめまして。初投稿です。
    初心者ですが、よろしくお願いします。

    今、C#でシューティングゲームのようなものを作ろうと思っています。
    が、あわからないことがありましたので、質問させていただきます。

    敵の弾をpictureBoxに表示して移動させているのですが、
       pictureBox1.Location.left = pictureBox1.Location.left + 1;
       pictureBox2.Location.left = pictureBox2.Location.left + 1;
    pictureBox3.Location.left = pictureBox3.Location.left + 1;
    .
    .
    .
    と言う記述しか思い浮かばず、複数となると大変だなぁと考えています。
    配列のようなものを使うのでしょうか?
    上手い方法を教えてください。


    それと、ほかのサイトで調べている中で、
    「画面がちらつくようになる」
    とあったのですが、その対処法もできればお願いします。


    よろしくお願いしますm(__)m
親記事 /過去ログ75より / 関連記事表示
削除チェック/

■60263  Re[6]: BMPファイルをBgra32形式で読み込みたい
□投稿者/ K -(2011/06/24(Fri) 22:39:22)
    ありゃ、思いっきり Not Supportedて書いてありますね。
    調査不足でした。

    ありがとうございます。
    しかし、64bitのエンコードが対応になってますね。
    試してませんが。

    No60248 (Azulean さん) に返信
    > みるとすれば、この辺とか。
    >
    > http://msdn.microsoft.com/en-us/library/ee719797.aspx#bmp_image_format
    >>BMP Image Format
    >>Pixel Format / Encodes As... / Decodes As...
    >>GUID_WICPixelFormat32bppBGRA / GUID_WICPixelFormat32bppBGR / Not Supported
    >>GUID_WICPixelFormat32bppPBGRA / GUID_WICPixelFormat32bppBGR / Not Supported
    >
    > 結果は変わりませんが。
記事No.60072 のレス / END /過去ログ101より / 関連記事表示
削除チェック/

■92276  Re[6]: MDI子ウインドウを最前面にする方法
□投稿者/ 魔界の仮面弁士 -(2019/09/06(Fri) 15:39:28)
    No92271 (とっちゃん さん) に返信
    > なるほど。。。
    > Activate が内部的に呼びだしてるのかもしれませんね。
    > それだと、状況次第ではうまくいかないなどがありそうです。

    Child1 = New Form() With {.MdiParent = Me, .Text = "Child1"}
    Child2 = New Form() With {.MdiParent = Me, .Text = "Child2"}
    Child3 = New Form() With {.MdiParent = Me, .Text = "Child3"}

    のところの順番を入れ替えて

    Child3 = New Form() With {.MdiParent = Me, .Text = "Child3"}
    Child1 = New Form() With {.MdiParent = Me, .Text = "Child1"}
    Child2 = New Form() With {.MdiParent = Me, .Text = "Child2"}

    にした場合は、ActivateMdiChild でも 1 と 2 の切り替えが正しく行われました。
    奇妙奇天烈摩訶不思議…



    No92265 (むん さん) に返信
    > 「このメンバは、.NET Framework インフラストラクチャのサポートを目的としています。
    > 独自に作成したコード内で直接使用することはできません。」とのことです。

    .NET Framework 2.0 以降のリファレンスには見当たらないですね。
    .NET Framework 1.x 当時の記述だったかな…?
    https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.form.activatemdichild

    …と思ったら .NET のソースコードに、<internalonly/> が付与されていますね。
    https://referencesource.microsoft.com/#System.Windows.Forms/winforms/Managed/System/WinForms/Form.cs,3096



    > topmostをTrueにする方法も既に試していますが
    > https://www.papy.in/bbs/vb1/200507/05070056.html
    同ログのオリジナルはここ。
    http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200507/05070056.txt


    > どのようにすれば良いでしょうか?

    MDI 子フォームとせず、親フォーム上に直接配置するという手法があります。

    ただし MDI 管理からは外れるため、MdiChildren プロパティや
    LayoutMdi メソッドとは連動しなくなりますし、
    子フォームを最大化した場合の動作も異なることになります。

    Partial Public Class Form1
      Private Child1, Child2, Child3 As Form

      Public Sub New()
        InitializeComponent()

        IsMdiContainer = True
        Child1 = New Form() With {.MdiParent = Me, .Text = "Child1"}
        Child2 = New Form() With {.MdiParent = Me, .Text = "Child2"}
        Child3 = New Form() With {.TopLevel = False, .Text = "TopMost"}
        Controls.Add(Child3)
        Child1.Show()
        Child2.Show()
        Child3.Show()

        ' Controls.OfType(Of MdiClient)().FirstOrDefault()?.SendToBack()
      End Sub
    End Class
記事No.92263 のレス /過去ログ159より / 関連記事表示
削除チェック/

■92293  Re[8]: MDI子ウインドウを最前面にする方法
□投稿者/ 魔界の仮面弁士 -(2019/09/08(Sun) 22:08:07)
    No92289 (むん さん) に返信
    > ウインドウを最小化するとどこかに
    MinimizeBox と MaximizeBox を False にして運用していただくのが手っ取り早いのですけれどね…。


    > 消えてしまってプログラムを再起動しないとアクセスできなくなってしまうのですが・・・

    消えたというか、MdiClient コントロールの背面に居る状態なのでしょう。
    先の No92276 のコントロール階層は、下記の構成になっています。

    Form(Form1)
    ├MdiClient(IsMdiContainer による自動生成)
    │├Form(Child1)
    │└Form(Child2)
    └Form(Child3)

    MdiClient コントロールというのは、MDI 親フォームのクライアント領域に自動配置される灰色のパネルです。

    MdiClient は通常、Dock プロパティが Fill の状態であるため、
    Form1 のクライアント領域全てを覆っている状態となります。

    今回の場合、MdiClient も Child3 も、Form1 の子コントロールとなっているため、
    重なり合っている場合は、より手前にある方が見えた状態となります。



    ★案1:最小化された瞬間、MDIClient を最背面に移動しなおす。

    Partial Public Class Form1
      Private Child1, Child2, Child3 As Form

      Public Sub New()
        InitializeComponent()

        IsMdiContainer = True
        Child1 = New Form() With {.MdiParent = Me, .Text = "Child1"}
        Child2 = New Form() With {.MdiParent = Me, .Text = "Child2"}

        Child3 = New Form() With {.TopLevel = False, .Text = "TopMost"}
        AddHandler Child3.SizeChanged, AddressOf TopMostChildWindowStateChanged
        Controls.Add(Child3)

        Child1.Show()
        Child2.Show()
        Child3.Show()
      End Sub

      Private Sub TopMostChildWindowStateChanged(sender As Object, e As EventArgs)
        Static IsBusy As Boolean = False
        If Not IsBusy Then
          IsBusy = True
          If DirectCast(sender, Form).WindowState = FormWindowState.Minimized Then
            Me.Controls.OfType(Of MdiClient)().FirstOrDefault()?.SendToBack()
          End If
          IsBusy = False
        End If
      End Sub
    End Class

    欠点:
     Child3 は「MDI 子フォーム」では無く「子コントロール」であるため、Chlld1/Child2 を最小化したときに
     アイコンが重なってしまう。また、最大化時の振る舞いが通常の MDI 子フォームとは異なる。



    ★案2:通常時は「子コントロール」、最小化時は「MDI 子フォーム」として振舞うようにする。

    Partial Public Class Form1
      Private Child1, Child2, Child3 As Form

      Public Sub New()
        InitializeComponent()

        IsMdiContainer = True
        Child1 = New Form() With {.MdiParent = Me, .Text = "Child1"}
        Child2 = New Form() With {.MdiParent = Me, .Text = "Child2"}

        Child3 = New Form() With {.TopLevel = False, .Text = "TopMost"}
        AddHandler Child3.SizeChanged, AddressOf TopMostChildWindowStateChanged
        Controls.Add(Child3)

        Child1.Show()
        Child2.Show()
        Child3.Show()
      End Sub

      Private Sub TopMostChildWindowStateChanged(sender As Object, e As EventArgs)
        Static IsBusy As Boolean = False
        If Not IsBusy Then
          IsBusy = True
          Dim f = DirectCast(sender, Form)

          'If f.WindowState <> FormWindowState.Minimized Then
          If f.WindowState = FormWindowState.Normal Then
            If f.MdiParent IsNot Nothing Then
              f.MdiParent = Nothing
              f.TopLevel = False
              f.Parent = Me
            End If
          Else
            f.Visible = False
            f.MdiParent = Me
            f.Visible = True
          End If
          IsBusy = False
        End If
      End Sub
    End Class

    欠点:
     「子コントロール」と「MDI 子フォーム」の間で切り替えるたびに、ウィンドウハンドルが再生成される。
     また、最大化」時の連携が不完全。
記事No.92263 のレス /過去ログ159より / 関連記事表示
削除チェック/

■93705  Re[2]: チェックリストボックスのフォーカスについて
□投稿者/ 犬夜叉 -(2020/01/17(Fri) 11:20:38)
    No93700 (KOZ さん) に返信

    > フォーカスを取得したら、別のコントロールに位置付けるようにすれば良いと思います。
    すみません、具体的にどうすればよろしいのでしょうか?


    やりたいことは

    チェックリストボックスに "A", "B", "C" のチェックボックスがあった場合、
    選択されているテキストボックスに
    "A"がチェックされたら "A"
    "A"と"B"がチェックされたら"A,B"
    が入力されるようにしたいのです。


記事No.93698 のレス /過去ログ162より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -