前提・実現したいこと
サブのformでボタンをクリックなどのイベントを起こしたら,
メインのformで処理を行いたいです.
インスタンス生成してサブの変数をメインで使うことができますが,
メインのformでサブformでイベントが起きたことを受け取れなくて困っています.
ご助言よろしくお願いします.
追記です。
fanaさんのmainフォームで関数を書いて、subフォームでボタンが押されるイベントと紐付けた関数がmainの関数を呼び出して処理するという方法でできました。
皆様ありがとうございます。
一応できたのですが、
しかし、お二人のsubフォームのボタンのModifiersをpublicにして
mainフォームに書いてある関数にクリックイベントを紐付けるっていうのができないのですが、
これはインスタンスに失敗しているのでしょうか。
プロパティのイベントにmainフォームに書いた関数が現れません...
コードですべて紐付けているのでしょうか...?
発生している問題・エラーメッセージ
該当のソースコード
C#
1using System; 2using System.Collections.Generic; 3using System.ComponentModel; 4using System.Data; 5using System.Drawing; 6using System.Linq; 7using System.Text; 8using System.Threading.Tasks; 9using System.Windows.Forms; 10using System.Data.SQLite; 11using System.Diagnostics; 12using System.Text.Json; 13 14namespace cs_launcher_1 15{ 16 public partial class murrelet : Form 17 { 18 public static DataTable dataTable = new DataTable(); 19 subF subF = new subF(); 20 21 public murrelet() 22 { 23 InitializeComponent(); 24 25 } 26 27 private void murrelet_Load(object sender, EventArgs e) 28 { 29 this.Text = "murrelet"; 30 using (SQLiteConnection con = new SQLiteConnection("Data Source = test.db")) 31 using (SQLiteDataAdapter adapter = new SQLiteDataAdapter("SELECT * FROM food", con)) 32 { 33 adapter.Fill(dataTable); 34 dataGridView1.RowHeadersVisible = false; 35 dataGridView1.Columns[0].Visible = false; 36 dataGridView1.Columns[6].Visible = false; 37 con.Close(); 38 } 39 } 40 41 42 43 public void esidButton_click(object sender,EventArgs e) 44 { 45 this.subF.esid = this.esidAdd.textBox1.Text; 46 this.toolStripStatusLabel1.Text = this.subF.id; 47 48 this.subF.Visible = false; 49 } 50 51 public void button1_Click(object sender,EventArgs e) 52 { 53 esidAdd.button1.Click += mainF; 54 } 55 56 public void mainF(object sender,EventArgs e) 57 { 58 this.toolStripStatusLabel1.Text = "検知成功"; 59 } 60 61 public static void TheProcess() 62 { 63 Console.WriteLine("成功"); 64 } 65 } 66}
試したこと
入門の本やネットで調べたりしたのですが,よくわかりませんでした.
メインのフォームに関数を書くのが正解なのでしょうか.
補足情報(FW/ツールのバージョンなど)
Windows 10 Home 20H2
VisualStudioVersion = 16.0.31624.102
C#
.NET framework 4.7.2
回答4件
あなたの回答
tips
プレビュー