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

わんくま同盟

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

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


(過去ログ 120 を表示中)
■70355 / )  Re[5]: foreachを使わない
□投稿者/ まさおっち (6回)-(2014/03/14(Fri) 19:30:17)
DLするのは大変だと思いますので、ソースを記述しておきます。

//form1
        public void CreateNewTab()
        {
            if (_message == null) return; //インターフェイスは何か読めてるか?
            foreach (var item1 in _message)
            {
                if (ブログ数 != 0) { break; } //タブを無限増殖させないため
                // tabの追加
                var title = item1.TabName;
                var tabPage = new TabPage(title);
                tabPage.BackColor = Color.White;
                tabPage.Name = "tab1";
                foreach (var item1 in _message)
                {
                    ブログ数 = ブログ数 + 1;
                    アイコンの位置 = (ブログ数 - 1) * 13;
                    var PictureBox1 = new PictureBox();
                    PictureBox1.Location = new System.Drawing.Point(10 * アイコンの位置 + 10 + ブログ数, 10); //
                    PictureBox1.Size = new System.Drawing.Size(120, 120);
                    PictureBox1.ImageLocation = item1.picturebox1url();
                    PictureBox1.Click += (s, e) =>
                    {
                        removeDynamicControls("blogtextbox1");
                        removeDynamicControls("blogbutton");
                        item1.DLL関数(this.tabControl1, this.Controls);
                    };
                    tabPage.Controls.Add(PictureBox1);
                }
                tabControl1.TabPages.Add(tabPage); //タブ作成
            }
        }
        //テキストボックスなどを名前指定で消す。
        public void removeDynamicControls(string textbox)
        {
            Control[] controls = Controls.Find(textbox, true);
            foreach (Control control in controls)
            {
                this.Controls.Remove(control);
                control.Dispose();
            }
        }
------------------------------------------------------------------------------------------------------------------------------------------------
//DLL1
            public void DLL関数(TabControl tabControl1, Control.ControlCollection Controls)
            {
                Form1 form1;//Formクラスのインスタンス化。
                form1 = new Form1();
                //テキストボックス1
                var blogtextbox1 = new TextBox();
                blogtextbox1.Location = new System.Drawing.Point(10, 30);//
                blogtextbox1.Size = new System.Drawing.Size(180, 10);
                blogtextbox1.Name = "blogtextbox1";
                Controls.Add(blogtextbox1);
                //ボタン
                var blogbutton2 = new Button();
                blogbutton2.Location = new System.Drawing.Point(10, 10);
                blogbutton2.Name = "blogbutton";
                blogbutton2.Size = new System.Drawing.Size(80, 20);
                blogbutton2.Text = "DLL1";
                blogbutton2.Click += (a, b) =>
                {
                    blogtextbox1.Text = "DLL1";
                };
                Controls.Add(blogbutton2);
            }

----------------------------------------------------------------------------------------------------------
//DLL2

           public void DLL関数(TabControl tabControl1, Control.ControlCollection Controls)
            {
                Form1 form1;//Formクラスのインスタンス化。
                form1 = new Form1();
                //テキストボックス1
                var blogtextbox1 = new TextBox();
                blogtextbox1.Location = new System.Drawing.Point(10, 30);//
                blogtextbox1.Size = new System.Drawing.Size(180, 10);
                blogtextbox1.Name = "blogtextbox1";
                Controls.Add(blogtextbox1);
                //ボタン
                var blogbutton2 = new Button();
                blogbutton2.Location = new System.Drawing.Point(50, 10);
                blogbutton2.Name = "blogbutton";
                blogbutton2.Size = new System.Drawing.Size(80, 20);
                blogbutton2.Text = "DLL2";
                blogbutton2.Click += (c, d) =>
                {
                    blogtextbox1.Text = "DLL2";
                };
                Controls.Add(blogbutton2);
            }










このような形になっています。
結果2つのピクチャーボックスができ、押すとボタンが生成されるのですが、ピクチャーボックスは正しく2種のものが出るのに、ピクチャーボックスを押すと両方ともDLL2が出てしまいます。

なぜDLL1のDLL関数をつかうことができないのでしょうか?

返信 編集キー/


管理者用

- Child Tree -