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

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

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

No.91541 の関連記事表示

<< 0 >>
■91541  Re[12]: メモリリークに関して
□投稿者/ 魔界の仮面弁士 -(2019/07/04(Thu) 15:18:05)
    2019/07/04(Thu) 15:29:28 編集(投稿者)

    No91540 (kiku さん) に返信
    > textBox1.Font = f1;
    > 上記のsetterで新しいインスタンスが生成されるという
    > ことは考えられないでしょうか?

    仮に setter でインスタンスが生成されていたとしても、
    それと別に、getter で毎回生成されていることは間違いないかと。


    using (var txt = new TextBox())
    {
     // CE 環境においては "違う" らしい
     MessageBox.Show(ReferenceEquals(txt.Font, txt.Font) ? "同じ" : "違う");
    }
    using (var txt = new TextBox { Font = null })
    {
     // "not null" と表示される
     MessageBox.Show((txt.Font == null) ? "null" : "not null");
    }



    No91539 (魔界の仮面弁士) に追記
    > var f1 = new Font(FontFamily.GenericMonospace, 12, FontStyle.Regular);
    > var f2 = new Font(FontFamily.GenericMonospace, 12, FontStyle.Regular);
    > f2.Dispose();
    > button1.Font = f1;
    > button2.Font = f2;
    > button1.Font.Dispose();
    >
    > .NET Compact Framework の場合は、button1 だけが新しいフォントになります。
    > button2 の方は以前のフォントのままレンダリングされていました。

    違ってました。

    デザイン時に別のフォントを指定してから実行してみると、
    button2 のフォントが変化する様子が確認できたので、
    button2 が「以前のフォントのまま」で変化しないという推察は誤りですね。

    Control.Font プロパティに「Dispose 済みの Font」や「null」が渡された場合、
    『既定のフォントがセットされる』という動作になっているようです。
記事No.91509 のレス /過去ログ158より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -