• 締切済み

.NET(C#)のコントロールを一定で増加する方法

プログラミング初心者です。 以下の内容について、どなたか教えてください。 首題の件、.NET上で作成したコントロールのグループを一定ごとに増加して表示することは可能でしょうか? 現在、Visual studio 2010(C#のフォームアプリケーション)で、マウスでクリックした位置の判定を知らせるプログラムを開発しています。 開発の際のコントロールのデザインですが、ラベルA~Dをもつコントロールを一定クリック回数ごとに増やせるように(行を追加するように表示)したいと考えています。 (※参考までに開発目標のコントロールの画像を添付しました。各ラベルの内部処理としては、 ラベルA:回数 ラベルB:残りクリック数 ラベルC:クリックした人の名前 ラベルD:クリックした座標 上記4点を表示したいと考えています) 上記、開発目標に対し、最初はTableLayoutPanelを用いて、行を追加するように表現しようと考えましたが、2行3列のデザインを一つのグループとして作成することができませんでした。 つきましては、どなたか添付の画像のようなコントロールのグループを行の追加のように表示していく方法をご存知の方がいればご教授のほど、よろしくお願いいたします。 ※なお現在の開発環境は以下の通りです。 Visual Studio 2010 Express(C#)

みんなの回答

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

コントロールのグループはSystem.Windows.Forms.UserControlクラスを拡張したクラスを作ってそこにコントロール(ラベル)をぺちぺち置いていけばいいよ。 プロジェクトを右クリック→追加→ユーザーコントロール とすると、ウインドウ枠が無いフォームみたいなのが出るのでそこに好きなようにラベルを配置する。 後はこれを普通のコントロールとして画面に追加していけばいい。 で、ぺちぺち置いたラベルのTextを変えたいと思うがそれはユーザーコントロールの方にアクセスできるパブリックなメソッドなりプロパティなりを作ればいい。以下、ユーザーコントロールをpnlLogクラスとした場合の例。 namespace hoge {  public partial class pnlLog : UserControl  {   ・・・・(省略)・・・・   // ラベルDのTextを外からアクセスする例(pnlLogのpublicなプロパティを通してアクセス)   public string LabelDText   {    get    {     return this.LabelD.Text;    }    set    {     this.LabelD.Text = value;    }   }  } } pnlLogの外から各ラベルにアクセスするには上例のようにpnlLogで制御する他に、LabelDなどのmodifierをpublicにしてもアクセスできる。

関連するQ&A

専門家に質問してみよう