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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.85902 の関連記事表示

<< 0 >>
■85902  Re[5]: 別のフォーム釦をおす
□投稿者/ WebSurfer -(2017/11/30(Thu) 16:06:52)
    No85891 (しろ さん) に返信
    
    > 「cForm2 なのかな?) のボタンを PerformClick しないと。」ってどうしたらよいのか
    > 意味が分からないのですが・・どうしないといけないんですか?
    
    質問者さんがやっているのは、自フォームのボタンクリックのイベントハンドラで、再度自フォー
    ムのボタンをクリックしているので、永久ループになっているのは分かりますか?
    
    やらなければいけないのは、自フォームのボタンクリックのイベントハンドラで生成した別フォー
    ムの中にあるボタンをクリックしなければならないということは分かりますか?
    
    そうするためには別フォームの中にあるボタンに外部からアクセスできる必要があるのですが、
    デザイナでツールボックスから Button を Form にドラッグ&ドロップするとその Button のアク
    セス修飾子は private になって外部からはアクセスできません。
    
    なので、例えば(あくまで例えばです)、外部から Button にアクセスできるようパブリックプロ
    パティを定義して、それを通じでアクセスすれば望むことができると思います。
    
    具体的には、Form2 というのを作ってそれに Button をドラッグ&ドロップしたとすると、以下
    のようにパブリックプロパティを追加します。
    
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
    
            // button1 にアクセスするためのパブリックプロパティ
            public Button Button1
            {
                get { return this.button1; }
            }
        }
    }
    
    それを Form1 のボタンクリックで以下のように使います。
    
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    using System.Security.Principal;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                Form2 f = new Form2();
                f.Button1.Click += Form2ButtonClick;
                f.Show();
                f.Button1.PerformClick();
            }
    
            private void Form2ButtonClick(object sender, EventArgs e)
            {
                MessageBox.Show("button clicked");
            }
        }
    }
記事No.85851 のレス /過去ログ147より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -