3

WinFromがあり、すべての境界線とコントロールボックスを非表示にしています。WinForm内には、(WinFromコントロールではなく)RECT()があります。RECTはWinForm全体を埋めます。

WinFormにラベルを追加しようとしていますが、RECTの上にラベルを表示したいと思います。ラベルはWinFormに表示されますが、RECTの上には表示されません。私は以下を使用してみました:

/*App Runs - Label does not show up*/
_label.Text = "This is the label";
_label.BackColor = Color.Cornsilk;
_form.Controls.Add(_label);
_form.Controls.SetChildIndex(_label, 0);

/*App Does Not Run*/
_label.Text = "This is the label";
_label.BackColor = Color.Cornsilk;
_form.Controls.SetChildIndex(_label, 0); //trying to set the index before I add the label to the form
_form.Controls.Add(_label);

/*App Runs - Label does not show up*/
_label.Text = "This is the label";
_label.BackColor = Color.Cornsilk;
_label.BringToFront();
_form.Controls.Add(_label);

/*App Runs - Label does not show up*/
_label.Text = "This is the label";
_label.BackColor = Color.Cornsilk;
_form.Controls.Add(_label);
_label.BringToFront();

ご覧のとおり、私はさまざまなことを試しましたが、何も機能していません。また、RECTを追加した後、ラベルを追加してみましたが、役に立ちませんでした。背景画像の追加に関して同様の問題が発生しています(ただし、ここで質問されているわけではありません)。ラベルをRECTの上に表示するためのより強力な方法を知っている人はいますか?

また、使用しているAPIとdllのため、RECTまたはWinForms以外のものを使用することはできません。

4

1 に答える 1

9

ラベル自体にBringToFrontを使用できます。

_label.BringToFront();

これにより、ラベルがフォームのZオーダーの前に表示されるため、他のフォーム要素の上に表示されます。

私はRECT()を持っています(WinFromコントロールではありません)RECTはWinForm全体を埋めます

「RECT」はコントロールではなく、定義のサイズと位置です。背景の表示に使用しているものによっては、これが機能しない場合があります。フォーム全体にペイントしている場合は、zオーダーに何を使用しても、他のコントロールを上書きして「マスク」している可能性があります。これ以上の情報がないと、ガイダンスを提供するのは難しいかもしれませんが、「RECT」の後にラベルを再描画するようにする必要があります。

于 2012-08-23T16:55:48.763 に答える