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

わんくま同盟

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

C# と VB.NET の入門サイト


(過去ログ 125 を表示中)
■74253 / )  Re[1]: スタートアップ時にフォームが指定された位置に表示されない
□投稿者/ 魔界の仮面弁士 (194回)-(2014/12/11(Thu) 11:00:52)
No74251 (pod さん) に返信
> 再現性が低く、1割以下の確率でしか発生しないので調査が難しく困っています。

そもそも設定が行われていないのか、設定が無視されているのか、
あるいは、設定した後で別の値で上書きされてしまっているのか、
呼び出し元を特定する必要がありそうですね。


たとえばこんなコードを仕込んでおくなどして、現象発生時の
呼び出し元を追跡してみては如何でしょうか。
(再現性が低いのであれば、画面に表示するのではなくログとして残すようにするとか)


private void Form1_Resize(object sender, EventArgs e)
{
    var sb = new StringBuilder(DateTime.Now.ToLongTimeString());
    sb.AppendLine(this.Bounds.ToString());
    sb.AppendLine("Resize on " + this.GetType().Name);
    sb.AppendLine(new StackTrace(true).ToString());

    var li = listBox1.Items.Count - 1;
    listBox1.Items.AddRange(
        sb.ToString().Split(new string[] { "\r\n" }, StringSplitOptions.None));
    listBox1.TopIndex = li;
}

private void Form1_LocationChanged(object sender, EventArgs e)
{
    var sb = new StringBuilder(DateTime.Now.ToLongTimeString());
    sb.AppendLine(this.Bounds.ToString());
    sb.AppendLine("LocationChanged on " + this.GetType().Name);
    sb.AppendLine(new StackTrace(true).ToString());

    var li = listBox1.Items.Count - 1;
    listBox1.Items.AddRange(
        sb.ToString().Split(new string[] { "\r\n" }, StringSplitOptions.None));
    listBox1.TopIndex = li;
}

返信 編集キー/


管理者用

- Child Tree -