|  | 
	                
  
    |  |  
    | 
        
        สอบถามการสร้างฟอร์มปุ่ม แล้วผูกอีเว้นแยกครับ (มือใหม่)     |  
    |  |  
 
              
  
    | 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ขอโทษนะ งง ตั้งแต่คำถามแล้วครับ คือไม่เข้าใจความต้องการครับ คือกดปุ๋มที่ฟอร์ม 1 แต่ ฟอร์ม 2 ทำงานหรืออย่างไงครับ ขอละเอียดนิดหนึ่งครับ
 รูปมาก็ได้ครับ
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2016-12-21 15:29:46 | By :
                            บัญดิษฐ |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ครับ คือผมสร้าง มาสเตอร์ฟอร์มของปุ่มไว้ เพื่อที่จะดึงไปใช้ในหน้า อื่นๆครับ อย่างปุ่ม Insert งี้ครับ สร้างไว้ในมาสเตอร์ แล้วดึงไปใช้ ใน 2 หน้าที่ว่า
 แต่ว่าคิวรี่ ของ 2 หน้านั้นมันไม่เหมือนกันอ่ะครับ
 
 |  
              | 
 ประวัติการแก้ไข
 2016-12-22 14:13:45
 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2016-12-22 14:13:06 | By :
                            reason01 |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | MasterFrom 
  
 หน้าที่ดึงไปแสดง
 
  
 มันคลิกใส่อีเว้น ไม่ได้อะครับ
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2016-12-22 14:17:19 | By :
                            reason01 |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ไม่ได้เพราะมันไม่ได้เป็น Public หรือเปล่าครับ ตรง MasterFrom ปุ๋มต่างๆ ตรง Modifiers ต้องกำหนดให้เป็น Public ครับ
 
  
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2016-12-22 15:30:35 | By :
                            บัญดิษฐ |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              |  
 มันก็เป็น Public หมดทุกปุ่ม แล้วนะครับ แต่ก็แก้ในหน้าลูกๆมันไม่ได้เลย ขึ้นเป็นล็อกไว้แบบนั้น
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2016-12-22 15:46:32 | By :
                            reason01 |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | OK เข้าใจแล้วมันไม่ใช่ Button มันเป็น Menu เอาอย่างนี้นะครับลองเข้าไปอ่านที่ http://www.akadia.com/services/dotnet_inherited_forms.html
 
 หรือไม่ก็ทำแบบนี้เอาครับ ที่ MasterFrom
 ให้ดับเบิ้ลคลิกเมนูไหนก็ได้เพื่อให้เกิด Even Click (ต้องทำทุกตัวแต่ตอนนี้เอาตัวเดียวก่อน)
 มันจะได้ประมาณนี้
 Code (C#)
 
 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 SampleBaseForm
{
    public partial class frmBase : Form
    {
        public frmBase()
        {
            InitializeComponent();
        }
        private void tsmSave_Click(object sender, EventArgs e)
        {
            Save();
        }
        protected virtual void Save()
        {
            
        }
    }
}
พอมา Form ที่ inherit มานั้นไม่ต้องทำอะไรกับปุ๋ม
 มาเล่นที่ Events override เอาครับ
 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 SampleBaseForm
 {
 public partial class Form1 : frmBase
 {
 public Form1()
 {
 InitializeComponent();
 }
 
 private void button1_Click(object sender, EventArgs e)
 {
 
 }
 protected override void Save()
 {
 base.Save();
 MessageBox.Show("Form1เด้อเจ่า");
 
 }
 }
 }
 
 ลองดูครับ
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2016-12-22 16:43:55 | By :
                            บัญดิษฐ |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ขอบคุณครับ เดียวผมลองก่อน 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2016-12-22 21:02:34 | By :
                            reason01 |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ขอรบกวนอีกหน่อยนะครับ ผมอยากใส่อีเว้น ในหน้า MasterForm เลยได้ไหมครับ ผมอยากให้ เวลากด New แล้ว Clear ใน Control ทุกตัว จะสร้าง แล้วเรียกใช้ยังไงหรอครับ
 เพราะผมคิดว่า New มันน่าจะเหมือนกันหมดทุกหน้า
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2016-12-23 15:27:06 | By :
                            reason01 |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | Code (C#) 
  public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Test Form1");
        }
    }
 Code (C#)
 
 public partial class Form2 : Form1
    {
        public Form2()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Test Form2");
        }
    }
 Code (C#)
 
 public partial class Form3 : Form1
    {
        public Form3()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Test Form3");
        }
    }
 จากตัวอย่างท่ายจะหมายความว่า button1_Click ใน Form1
 ก็ให้แสดง
 
 MessageBox.Show("Test Form2") หรือ MessageBox.Show("Test Form3");
 ตามแต่จะเป็น ฟอร์มลูกไหนยังงั้นเรอะครับ
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2016-12-23 15:59:59 | By :
                            lamaka.tor |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
 
 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | อ่ะนะ ฟอร์มที่  มาก็ต้องเพิ่ม code เข้าไปด้วย Code (C#) frmBase
 
 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 SampleBaseForm
{
    public partial class frmBase : Form
    {
        public frmBase()
        {
            InitializeComponent();
        }
        private void tsmSave_Click(object sender, EventArgs e)
        {
            Save();
        }
        protected virtual void Save()
        {
                        
        }
        private void tsmClear_Click(object sender, EventArgs e)
        {
            Clear();
        }
        protected virtual void Clear()
        {
            foreach (var x in this.Controls)
            {
                if (x is TextBox)
                {
                    ((TextBox)x).Text = String.Empty;
                }
            }
        }
    }
}
[cs]Code (C#)
[cs]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 SampleBaseForm
{
    public partial class Form1 : frmBase
    {
        public Form1()
        {
            InitializeComponent();
        }
     
        protected override void Save()
        {
            base.Save();
            //MessageBox.Show("Form1เด้อเจ่า");
        }
        protected override void Clear()
        {
            base.Clear();   //คือสืบทอดคุณสมบัติหรือเอาตามฟอร์มแม่มั้ง ถ้าไม่ต้องการก็ปิดด้วย // ข้างหน้า เพราะที่ออกแบบมาแบบนี้บางครั้งก็ไม่ใช่เสมอไปที่ new แล้วล้างหน้าจอครับ
        }       
    }
}
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2016-12-26 08:24:07 | By :
                            บัญดิษฐ |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | แบบนี้ก็แหล่มเลยครับ 
 ผมจะได้เอามาลองเล่นดูมั่งซะแล้ว
     
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2016-12-26 09:19:44 | By :
                            lamaka.tor |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  |  |