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

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

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

ユーザーコントロールにlabelを


(過去ログ 8 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■8450 / inTopicNo.1)  ユーザーコントロールにlabelを
  
□投稿者/ neko 二等兵(1回)-(2006/11/21(Tue) 22:55:40)

分類:[C#] 


分類:[C#] 

いつも勉強になっています。

Visual Studio 2005 ,C#でプログラムをしています。

最近ユーザーコントロールをやり始めました。
ユーザーコントロールにLabelを追加したいです。
外部から数字を読み込んで、その数だけLabelを追加したいんですが、
どうやればいいでしょうか?

普通に貼り付けて、見えなくする、という方法なのでしょうか?

よろしくお願いします。

0
引用返信 編集キー/
■8452 / inTopicNo.2)  Re[1]: ユーザーコントロールにlabelを
□投稿者/ 刈歩 菜良 二等兵(8回)-(2006/11/21(Tue) 23:34:12)
刈歩 菜良 さんの Web サイト

分類:[C#] 

ラベルに限らずコントロールはすべて動的に貼り付けることができますよ。
ちょっと、今環境がないので検証なしでコードを書きますが、labelNumが作りたいラベルの数だとしたならば、

for(int i = 0; i < labelNum; i++)
{
  Label labelTmp = new Label();
  labelTmp.Location = new Point(100, 50 + 50 * i); // 位置指定:値は適当
  labelTmp.Text = "labelに表示したい文字列";
  Controls.Add(labelTmp);
}

でOKなはずです。
何か間違えていたらごめんなさい。

0
引用返信 編集キー/
■8454 / inTopicNo.3)  Re[2]: ユーザーコントロールにlabelを
□投稿者/ えムナウ 伍長(53回)-(2006/11/22(Wed) 04:43:04)
えムナウ さんの Web サイト

分類:[C#] 

No8452に返信(刈歩 菜良さんの記事)
> ラベルに限らずコントロールはすべて動的に貼り付けることができますよ。
外部から数字を与えてがプロパティやメソッドで行うんのなら、
今までのコンロトールを削除することも必要ですね。

0
引用返信 編集キー/
■8478 / inTopicNo.4)  Re[3]: ユーザーコントロールにlabelを
□投稿者/ neko 二等兵(2回)-(2006/11/22(Wed) 23:19:42)

分類:[C#] 

返信ありがとうございます。無事出力されました!!

えムナウさんの
>外部から数字を与えてがプロパティやメソッドで行うんのなら、
>今までのコンロトールを削除することも必要ですね。

というのはどういうことでしょうか?
今までのコントロールって言うのは何をさしていますか?


0
引用返信 編集キー/
■8480 / inTopicNo.5)  Re[4]: ユーザーコントロールにlabelを
□投稿者/ えムナウ 伍長(55回)-(2006/11/22(Wed) 23:34:53)
えムナウ さんの Web サイト

分類:[C#] 

labelNumをLabelNumプロパティにしたとします。
LabelNumを2から5に変化させたらLabelの数も変化させたいでしょう。

public void MakeLabel(int labelNum) なんてメソッドを作ったとしたら、
MakeLabel(2); のあとに MakeLabel(5); を読んだらLabelの数も変化させたいでしょう。

そういう時は最初作った2つのラベルを削除する必要があります。
ユーザーコントロールはそういうことを考えて作ったほうが
いいんじゃないですか?


0
引用返信 編集キー/
■8492 / inTopicNo.6)  Re[5]: ユーザーコントロールにlabelを
□投稿者/ neko 二等兵(3回)-(2006/11/23(Thu) 19:02:39)

分類:[C#] 

返信ありがとうございます

消さないとどんどん増えていってしまうっていうことですね
もしくは重なってしまう。

さて、もう一つ聞きたいんですが、
Labelに名前をつけることは可能ですか?
Nameっていうのがあったので

for(int i = 0; i < labelNum; i++)
{
  Label labelTmp = new Label();
  labelTmp.Location = new Point(100, 50 + 50 * i); // 位置指定:値は適当
  labelTmp.Text = "labelに表示したい文字列";
  labelTmp.Name = "test"+j;
  Controls.Add(labelTmp);
}

てやろうとしたら、「どうやって呼び出すんだろう?」となってしまいました。
やりたいことは、キー入力から色を反転させて選択状態にしたい、ということです。
今までは
labelName.BackColor、labelName.ForeCoreで色を変更していました。

しかし、今回のように外部からの入力でLabelを作成する場合は
どうするのでしょうか?

他に選択状態にするためにいい方法があるのでしょうか?

0
引用返信 編集キー/
■8507 / inTopicNo.7)  Re[6]: ユーザーコントロールにlabelを
□投稿者/ 刈歩 菜良 二等兵(9回)-(2006/11/24(Fri) 11:36:06)
刈歩 菜良 さんの Web サイト

分類:[C#] 

No8492に返信(nekoさんの記事)
> さて、もう一つ聞きたいんですが、
> Labelに名前をつけることは可能ですか?
> Nameっていうのがあったので
可能ですよ。

> てやろうとしたら、「どうやって呼び出すんだろう?」となってしまいました。
ControlsにはFindメソッドがあります。
たとえば、Nameプロパティに"test1"と名づけたものを見つけ出したいときは、

Control[] tmpControl;
tmpControl = Controls.Find("test1", false);

tmpControl[0]に見つかったLabelコントロールが入ってます。

ポイントはFindメソッドの戻り値は配列なので、配列で受け取る必要があるってとこですね。

0
引用返信 編集キー/
■8525 / inTopicNo.8)  Re[7]: ユーザーコントロールにlabelを
□投稿者/ neko 二等兵(4回)-(2006/11/25(Sat) 22:33:29)

分類:[C#] 


> Control[] tmpControl;
> tmpControl = Controls.Find("test1", false);
>
> tmpControl[0]に見つかったLabelコントロールが入ってます。
>
> ポイントはFindメソッドの戻り値は配列なので、配列で受け取る必要があるってとこですね。

ありがとうございました。
ラベル名を指名していろいろできました。

みなさん、本当にありがとうございました

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -