 |
|
สอบถามการสร้างฟอร์มปุ่ม แล้วผูกอีเว้นแยกครับ (มือใหม่) |
|
 |
|
|
 |
 |
|
ขอโทษนะ งง ตั้งแต่คำถามแล้วครับ คือไม่เข้าใจความต้องการครับ
คือกดปุ๋มที่ฟอร์ม 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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|