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

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

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

No.88850 の関連記事表示

<< 0 >>
■88850  Re[3]: VB.NETでの全ハンドル列挙について
□投稿者/ ??? -(2018/10/04(Thu) 16:04:16)
    No88846 (??? さん) に返信
    > ■No88844 (魔界の仮面弁士 さん) に返信
    >>■No88842 (ぽん さん) に返信
    > >>上記URLに、VB.NETでTreeViewに実行中のすべてのコントロールを表示するコードが載せられているのですが
    >>VB6 互換 Collection を使っていたり、IntPtr を使わずに
    >>x86 かつ Option Strict Off 前提のコードになっていたり、
    >>Wide API ではなく ANSI API になっていて、しかも
    >>文字列をバイナリで処理していたりするなど、
    >>突っ込みどころが満載なので、ゴッソリ書き直したい…。
    >>
    >>
    > >>ハンドルの取得ができずに困っております。
    >>取得はされてますよ。colChilds(j)(0) を表示していないだけ。
    >>
    >>VB.NET 版のコードは、
    >> Dim strClass As String は colChilds(j)(1) から取得
    >> Dim strTitle As String は colChilds(j)(2) から取得
    >>となっていて、それを
    >> New TreeNode(strClass & " - " & strTitle)
    >>で表示していますよね。
    >>
    >>
    >>なので、
    >> Dim strHandle As String = CInt(colChilds(j)(0)).ToString("X8")
    >>などを追加して、
    >> New TreeNode(strHandle & " - " & strClass & " - " & strTitle)
    >>にでも変えてやれば良いんじゃないでしょうか。VB6 版のように。
    >
    > 素晴らしいご回答ありがとうございます!
    > まだまだ勉強不足のため、分からない部分が多々ありますが、
    > 戴いた情報を参考にコーディングしてみようと思います。
    > 結果はまたご報告いたします。


    おかげさまで無事に表示させることが出来ました!
    .ToString("X8")でわざわざ16進数へ置換する処理まで入れていただき、大変感謝いたします。
    またご質問することがあると思いますので、その際は何卒、宜しくお願い致します!

    以下、実現できたコードを載せておきます。
    「現在実行中のハンドルのみを列挙」

    bytClass = System.Text.Encoding.GetEncoding(
    "SHIFT-JIS").GetBytes(colChilds.Item(j)(0))
    If bytClass.Length < 30 Then
    Dim p As Integer = bytClass.Length
    ReDim Preserve bytClass(bytClass.Length + bytSpace.Length - 1)
    Array.Copy(bytSpace, 0, bytClass, p, bytSpace.Length)
    ReDim Preserve bytClass(30 - 1)
    End If
    Dim strHandle As String = CInt(colChilds(j)(0)).ToString("X8")

    If j = 1 Then
    treeNodeTop = New TreeNode(strHandle)
    TreeView1.Nodes.Add(treeNodeTop)
    Else
    Dim treeNodeSub As TreeNode =
    New TreeNode(strHandle)
    treeNodeTop.Nodes.Add(treeNodeSub)
    End If
記事No.88842 のレス /過去ログ153より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -