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

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

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

全過去ログを検索

<< 0 >>
■6852  Re[2]: PropertyGridの制御について
□投稿者/ mizuki -(2006/09/26(Tue) 16:43:40)

    分類:[C#] 

    No6851に返信(επιστημηさんの記事)
    >>デザイン画面のプロパティを変更(PropertyGrid)すると、関連するプロパティが
    >>連携して、値が変わって欲しいのです。
    >
    > で、なにがわからんですか?
    > プロパティが変更されたら PropertyValueChanged イベントが発生しますが。
    >
    説明不足だったみたいです。すみません。
    今、テキストボックスを継承して、カスタムテキストを作っているのですが、
    プロパティを変更した時に、関連のある新たなプロパティの値を連携させたいです。

    デザイン画面でプロパティを変更して、関連するプロパティが変更されないので
    どうすればいいのか悩んでいました。

    市販のコントロールの場合などに、あるプロパティを変更すると
    関連するプロパティが、勝手に変わる物があったような気がしたので
    実装できれば、いいなぁと思いながら、少ない知識でやったのですが・・

    先ほど教えていただいたPropertyValueChangedのイベントが発生するのは
    MSDNで確認させて頂きましたが、実装方法がわからないです。
    継承した、テキストボックスのクラスに実装できればいいのですが。

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

■15717  Re[2]: .NET 2008 で InkPicture を使うには
□投稿者/ なおき -(2008/03/19(Wed) 11:14:50)
    No15713 (はつね さん) に返信
    > Micorosoft InkEDIT ControlはActiveXコントロールですから、.NETクラスライブラリであるMicrosoft.Inkとは別のものです。
    > 参照設定が違っているのだと思います。
    > http://msdn2.microsoft.com/ja-jp/library/microsoft.ink.inkedit.aspx

    早々にありがとうございます.
    こちらのコントロールを使えるようにするためには,
    つまり,Microsoft.Ink を使えるようにするためには,
    なにを参照させればよいのでしょうか?

    お分かりになる方,アドバイスいただけると幸いです.
記事No.15711 のレス /過去ログ32より / 関連記事表示
削除チェック/

■92890  ownerのWindowハンドルを知りたい
□投稿者/ dorago -(2019/11/05(Tue) 19:21:13)

    分類:[VB.NET/VB2005 以降] 

    (VB2013〜2017を使用)
    Windows Formについて質問があります。
    フォームForm1のインスタンスをfとして、
    f.Show(owner) または f.ShowDialog(owner) とすると、
    ownerオブジェクトの前面にフォームが表示されます。

    このownerはIWin32Windowインタフェースを実装していればよく、
    例えばコントロールをownerにしてもいいわけですが、
    フォームのOwnerプロパティはFormなので、ownerがFormではない場合、
    OwnerプロパティはNothingを返します。

    この場合、表示フォームのownerのWindowハンドルを知りたいのですが、
    方法はありますか?
    (Ownerに設定されているIWin32Window型のオブジェクトが分かればよいです。)
親記事 /過去ログ160より / 関連記事表示
削除チェック/

■92892  Re[1]: ownerのWindowハンドルを知りたい
□投稿者/ 魔界の仮面弁士 -(2019/11/05(Tue) 20:40:24)
    No92890 (dorago さん) に返信
    > このownerはIWin32Windowインタフェースを実装していればよく、
    > 例えばコントロールをownerにしてもいいわけですが、
    極端な話、.NET で管理されていないウィンドウでも構いません。
    「メモ帳」や「電卓」のウィンドウを owner とすることもできます。


    > 例えばコントロールをownerにしてもいいわけですが、
    > フォームのOwnerプロパティはFormなので、ownerがFormではない場合、
    > OwnerプロパティはNothingを返します。

    ――あれ?
    通常は TextBox 等を渡したからといって、Nothing にはならないような。

    非 Control な IWin32Window を対象としていたり、フォームに貼る前のコントロールを
    Owner に引き渡した場合には、Nothing になりえますが…。


    Owner が Control である場合は、その Control の FindForm() メソッドの戻り値
    (正確には、SetTopLevel(True) な Control までの再帰 Parent 呼び出し)が
    フォームの Owner プロパティに渡されるようになっていたはず。


    > この場合、表示フォームのownerのWindowハンドルを知りたいのですが、
    > 方法はありますか?

    リフレクションしか無さそう。

    Imports System.Reflection
    Imports System.Runtime.CompilerServices
    Public Module FormExtension
      <Extension> _
      Public Function GetOwnerHandle(this As Form) As IWin32Window
        Static key As Integer = CInt(GetType(Form).GetField("PropDialogOwner", BindingFlags.NonPublic Or BindingFlags.Static).GetValue(Nothing))
        Static ps As Func(Of Form, Object) = AddressOf GetType(Control).GetProperty("Properties", BindingFlags.NonPublic Or BindingFlags.Instance).GetValue
        Try
          Return DirectCast(CallByName(ps(this), "GetObject", CallType.Method, key), IWin32Window)
        Catch
          Return Nothing
        End Try
      End Function
    End Module
記事No.92890 のレス /過去ログ160より / 関連記事表示
削除チェック/

■92897  Re[2]: ownerのWindowハンドルを知りたい
□投稿者/ dorago -(2019/11/06(Wed) 10:19:02)
    > ――あれ?
    > 通常は TextBox 等を渡したからといって、Nothing にはならないような。
    >
    > 非 Control な IWin32Window を対象としていたり、フォームに貼る前のコントロールを
    > Owner に引き渡した場合には、Nothing になりえますが…。
    >
    >
    > Owner が Control である場合は、その Control の FindForm() メソッドの戻り値
    > (正確には、SetTopLevel(True) な Control までの再帰 Parent 呼び出し)が
    > フォームの Owner プロパティに渡されるようになっていたはず。

    これは勘違いしていたかも知れません。済みません...


    >>このownerはIWin32Windowインタフェースを実装していればよく、
    >>例えばコントロールをownerにしてもいいわけですが、
    > 極端な話、.NET で管理されていないウィンドウでも構いません。
    > 「メモ帳」や「電卓」のウィンドウを owner とすることもできます。

    ところで、今開いているメモ帳をownerとするには、どうすればよいでしょうか?
    試してはいないのですが、IWin32Windowインタフェースを実装したクラスを自作し、
    そのHandleプロパティが、目的とするメモ帳のウィンドウハンドルを返すようにすれば
    これをownerとすることができるのでしょうか?
    (極端な話、コンストラクタ以外、IWin32Windowインタフェースが指定するHandleプロパティしか
    メンバを持たないクラスであっても?)
記事No.92890 のレス /過去ログ160より / 関連記事表示
削除チェック/

■92899  Re[3]: ownerのWindowハンドルを知りたい
□投稿者/ 魔界の仮面弁士 -(2019/11/06(Wed) 10:26:25)
    No92897 (dorago さん) に返信
    > 試してはいないのですが、IWin32Windowインタフェースを実装したクラスを自作し、
    > そのHandleプロパティが、目的とするメモ帳のウィンドウハンドルを返すようにすれば
    > これをownerとすることができるのでしょうか?

    それで owner になります。
    内部実装的には、GWL_HWNDPARENT を SetWindowLong しているだけ。
記事No.92890 のレス /過去ログ160より / 関連記事表示
削除チェック/

■92900  Re[4]: ownerのWindowハンドルを知りたい
□投稿者/ dorago -(2019/11/06(Wed) 10:57:30)
    >>試してはいないのですが、IWin32Windowインタフェースを実装したクラスを自作し、
    >>そのHandleプロパティが、目的とするメモ帳のウィンドウハンドルを返すようにすれば
    >>これをownerとすることができるのでしょうか?
    >
    > それで owner になります。
    > 内部実装的には、GWL_HWNDPARENT を SetWindowLong しているだけ。

    ありがとうございました。
    リフレクションの件もありがとうございました。
    色々と試してみます。
記事No.92890 のレス / END /過去ログ160より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -