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

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

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

Re[1]: C# メインクラスのフォームに 別クラスで作成したオブジェク


(過去ログ 114 を表示中)

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

■67458 / inTopicNo.1)  C# メインクラスのフォームに 別クラスで作成したオブジェク
  
□投稿者/ haru (1回)-(2013/08/04(Sun) 19:11:23)

分類:[C#] 

 C#歴2日の初心者です。よろしくお願いします。。メインクラスで作成したオブジェクトをフォームに貼り付けるときは
例えば
Label lb = new Label();
lb.parent =this;
というふうにかけますが,カスタムなクラスからオブジェクトを作成してメインクラスのフォームに貼り付ける
ことはできるのでしょうか?

Class名.ActiveFormではないのですね。。。
ご指導よろしくお願いします。

//以下うまくいかないコードです

class test : Form
{
    public static void Main()
    {
        Application.Run(new test());
    }

    public test()
    {
        lbObject lb = new lbObject();
    }
}
class lbObject
{
    Label lb;
    public lbObject()
    {
        lb = new Label();
        lb.Text = "ok";
        lb.Parent = test.ActiveForm; ←ここをどうやれば??
    }
}

引用返信 編集キー/
■67461 / inTopicNo.2)  Re[1]: C# メインクラスのフォームに 別クラスで作成したオブジェク
□投稿者/ しま (18回)-(2013/08/04(Sun) 23:15:59)
No67458 (haru さん) に返信
>  C#歴2日の初心者です。よろしくお願いします。。メインクラスで作成したオブジェクトをフォームに貼り付けるときは
> 例えば
> Label lb = new Label();
> lb.parent =this;
> というふうにかけますが,カスタムなクラスからオブジェクトを作成してメインクラスのフォームに貼り付ける
> ことはできるのでしょうか?
>
> Class名.ActiveFormではないのですね。。。
> ご指導よろしくお願いします。
>


開発環境について示してください C# だけでは不足です。(少なくとも VisualStudio のバージョンとエディションとは書いてください)
0. 上手くいかないコードとはどこがどのようにうまくいかないのか説明してください。
ここをどうやればとしか書いていないので、何が上手くいかないのかは想像するしかありません
1. VisualStudio を使っていますか?
2. それとも直接エディターで *.cs を書いてコマンドラインからビルドしていますか?
3. もし VisualStudio をつかっているならどのプロジェクトを選びましたか?
4.  Windows フォームアプリケーションでしたか?

5. あなたが言うメインクラスとは何を指していますか?(test ですか?, lbObject ですか?,それとも他の何かですか?)
6. あなたの言うカスタムなクラスとはどれですか?
7. また、クラス lbObject のコンストラクターで
lb.Parent = test.ActiveForm;
と書いていますが、この test は何者ですか?
8. test.ActiveForm のように用いるからには test は何かしらのフォームのつもりなんでしょうか?
しかし、ActiveForm プロパティーは Form のスタチックなプロパティーですから特定のインスタンスとは無関係なので
lb.Parent = Form.ActiveForm;
のように使うのが普通だと考えます。ただ、このように書き換えても正しいコードにはなりませんが
オンラインの msdn の解説位は検索できるようにしないと先が思いやられます。

これがあなたのやりたいことかどうかは判りませんが
class lbObject : Label{
//ここに実装を書く
this.Text = "ok";
}
とすれば、
public test()
{
lbOjbect lb = new lbObject();
lb.Prent = this;
}
と書けるでしょう。
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -