ホーム>source

私はクラスのWinFormアプリケーションを開発していましたが、根本を見つけることができないように見えるバグに遭遇しました。アプリケーションを実行すると、正しくないユーザー入力が考えられるエラーラベルを除いて、すべてが機能します。最初は間違ったイベントハンドラーを作成したと思ったので、起動時に非表示にするのをやめましたが、ラベルがまだありません。一部のバックエンドファイルで何かが欠けているのか、それとも本当に明白な何かが欠けているのかわかりません。

これはラベルを作成する関数です。

<前>ウィズウィズ

これは私のコントロールを初期化する関数です:

<前>ウィズウィズ

繰り返しますが、ここで何が間違っているのか本当にわかりません。任意の助けいただければ幸いです。

おかげで、

private void InitializeErrorLabel() { int width = 200, height = 13, anchorY = this.Label.Location.Y - this.Label.Size.Height - 3; // Initialize Component this.ErrorLabel.AutoSize = true; this.ErrorLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.ErrorLabel.ForeColor = System.Drawing.Color.Red; this.ErrorLabel.Location = new System.Drawing.Point((XSize - width) / 2, (anchorY - height)); this.ErrorLabel.Anchor = System.Windows.Forms.AnchorStyles.Top; this.ErrorLabel.Name = "ErrorLabel"; this.ErrorLabel.Size = new System.Drawing.Size(width, height); this.ErrorLabel.Text = "Invalid User ID. Please try again!"; return; }
あなたの答え
  • 解決した方法 # 1

    あなたはあなたのエラーラベルをどのコントロールに追加していますか?

    通常のラベルの初期化は次のようになります

    <前>ウィズウィズ

    重要

    ラベルは、3行目のようなコントロールに追加する必要があります。あなたのコントロールはあなたのケースのフォームにすることができます。私の場合はそのグループボックスとグループボックス自体をmyformに追加し、myformを表示する必要があります。

    <前>ウィズウィズ

  • 解決した方法 # 2

    フォームのコントロールのコレクションにラベルを追加する場所がわかりません。

    <前>ウィズウィズ

    private System.Windows.Forms.Label ErrorLabel; this.ErrorLabel = new System.Windows.Forms.Label(); this.groupBox2.Controls.Add(this.ErrorLabel); this.ErrorLabel.AutoSize = true; this.ErrorLabel.Location = new System.Drawing.Point(8, 59); this.ErrorLabel.Name = "ErrorLabel"; this.ErrorLabel.Size = new System.Drawing.Size(55, 13); this.ErrorLabel.TabIndex = 69; this.ErrorLabel.Text = "Address 2"; this.ErrorLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; のメンバーでない場合  コレクション、あなたはそれを見ることができません。

    これに関連して、同じ理由で、定義している他のボタンやチェックボックスなどがフォームに表示されなくても、驚かないでしょう。

    通常、これは this.groupBox2.Controls.Add(this.ErrorLabel); によって処理されます  ファイルを自動的に。

  • 解決した方法 # 3

    これは明白な答えかもしれませんが、それは完全に私の頭を超えました。私のコードに this.Controls.Add(this.ErrorLabel); があることを確認しました  他の人がここで言及したように。自分のレーベルが表示されなかった理由がわかりませんでした。私のレーベルはアスタリスク Controls でした 、デザイナーウィンドウではかなり小さいサイズにしていますが、 Designer.cs を確認できました  デザイナーウィンドウで。実際にアプリをレンダリングしたときは小さすぎたため、デザイナーウィンドウの領域を増やす必要があることがわかりました。

    this.groupBox2.Controls.Add(this.ErrorLabel);

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ PyPDF2を使用してPython 3で単一の文字列としてPDFからすべてのページを取得する方法