Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > .NET Framework > Forum > C# WinApp มือใหม่ อยากจะ Refresh datagrid ข้ามฟอร์ม ทำยังไง



 

C# WinApp มือใหม่ อยากจะ Refresh datagrid ข้ามฟอร์ม ทำยังไง

 



Topic : 076371



โพสกระทู้ ( 213 )
บทความ ( 0 )



สถานะออฟไลน์




คือผมมีฟอร์ม 2 ฟอร์ม
โดยที่บันทึกค่าจาก form 2 แล้วให้ฟอร์ม 1 รีเฟรช datagrid (เหมือนการอัพเดทข้อมูลล่าสุด)
โดยที่ไม่ได้ต้องปิดแล้วเปิด form1 แล้วเปิดขึ้นมาใหม่

ทำไงอ่ะครับ
ผมจะใช้ timer พอมานั่งคิด มันน่าจะมีวิธีอื่น เพราะ timer จะทำงานก็เมื่อ มันถึงเวลาที่ เราตั้งไว้

ทำมาวันหนึ่งแล้ว ขอไอเดียหน่อยครับ



Tag : .NET









ประวัติการแก้ไข
2012-03-30 00:36:15
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-03-30 00:34:42 By : SeedNew View : 4748 Reply : 14
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ตอนที่เรียก Form มาแสดงค่อย BindData ใหม่ก็ได้ครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-30 06:24:23 By : webmaster
 


 

No. 2



โพสกระทู้ ( 213 )
บทความ ( 0 )



สถานะออฟไลน์


ทำไงอ่ะครับ
คือหลักการทำงานโปรแกรมของผม
- เมื่อเปิด Form 1 ขึ้นมา จะสั่งให้ฟอร์มโหลดไปเรียก private void Sumdata() ขึ้นมา
- กรณีการเพิ่ม Data จะกด Button1 แล้วสั่งให้เปิด Form2 ขึ้นมา
- เมื่อบันทึกข้อมูลใน Form2 แล้วต้องการให้ DataGrid1 ใน Form1 ทำการ Refresh
เพื่อให้รู้ว่ามีการ Update ข้อมูล

สิ่งที่อยากรู้นะครับพี่วิน ผมจะทำ BindData ใหม่ เหมือนพี่ว่าทำไงอ่ะครับ
พอมี ตย ป่ะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-30 09:17:49 By : SeedNew
 

 

No. 3



โพสกระทู้ ( 213 )
บทความ ( 0 )



สถานะออฟไลน์


ลองแบบนี้แล้ว

Code
form2 f = new form2 ();
f.Show();
Showdata();


แต่โปรแกรมทำงานต่อเนื่องเลยครับ โชว์แล้วเรียกดาต้าขึ้นมาเลย
แทนที่มันจะปิดโปรแกรมแล้ว ค่อยเรียก Showdata();

ตอนนี้เลยงง ต่อไป


ประวัติการแก้ไข
2012-03-30 21:01:02
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-30 12:09:19 By : SeedNew
 


 

No. 4

Guest


ลองสร้างปุ่มให้ผู้ใช้กด refresh ใน form1 เองก็ได้ครับ

หรือ

สร้าง object ของ form 1 ให้เรียก refresh ดูครับ (อันนี้ไม่แน่ใจว่าทำได้ไหม)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-30 14:11:09 By : rootElement@kmutnb
 


 

No. 5



โพสกระทู้ ( 213 )
บทความ ( 0 )



สถานะออฟไลน์


ถ้ามันไม่มีทางเลือกจริงๆ คงทำแบบนั่นละครับ ตอนนี้จะพยายามลองหาก่อน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-30 16:39:28 By : SeedNew
 


 

No. 6



โพสกระทู้ ( 100 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

ไม่ลองใช้ delegate ละครับ พอ form2 save เสร็จก็ยิง delegate ออกมาบอก form1 ให้ refresh
https://www.thaicreate.com/dotnet/forum/027730.html
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-30 20:20:22 By : Programmer Of Persia
 


 

No. 7



โพสกระทู้ ( 213 )
บทความ ( 0 )



สถานะออฟไลน์


ได้แล้วครับ
ดูจะซับซ้อนนิดหน่อย

คือผมใช้
- form1 สร้าง textbox และ สร้าง Timer มาอย่างละตัว
- form1 สั่งให้ Timer เช็คค่าจาก textbox ตลอดเวลา ถ้าเป็น 1 ให้รีเฟรช datagrid แล้ว คืนค่า 0
- form2 Get โดยให้ค่า "1" ไปที่ tetxbox ของ form 1
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-30 21:11:29 By : SeedNew
 


 

No. 8

Guest


ทำได้อีก 2 แบบ คือ

1 ประกาศ ฟังก์ชั่น ที่ทำหน้าที่ refesh data grid ให้เป็นฟังก์ชั่นแบบ public หลังจากนั้น ประกาศตัวแปร form ที่ฟังก์อยู่อยู่ที่ class เป้น ตัวแปรประเภท public เหมือนกัน แล้วหลังจากนั้น พอทำการบันทึกข้อมูลใน form2 ให้สั่งค่าผ่านตัวแปร form ที่เราประกาศไว้ไปยัง ฟังก์ชั่น refesh data grid ที่เราสร้างไว้ที่ form1
เช่น
- file cass1
public static Form1 _form1 = new Form1();

-file form1
public void Showdata()
{
........
.........
}
- file form2
*คำสั่งควบคุมปุ่มบันทึกข้อมูล
private void buttonSave_Click(object sender, EventArgs e)
{
........
.........
cass1._form1.Showdata();
}

*แบบนี้จะทำให้โปรแกรมไม่ทำงานตลอดเวลาจะทำการ refesh ครั้งเดียวเท่านั้นเมื่อการบันทึกข้อมูลเสร็จ

แบบที่ 2 คือสั่งให้ form2 แสดงแบบ dialog
- เขียนคำสั่งควบคุมปุ่มที่จะทำการแสดง form2 ดังนี้
form2 f = new form2 ();
f.ShowDialog(this);
Showdata();

*แบบนี้ก็ทำได้ เนื่องจาก ที่เจ้าของกระทู้ทำจะเป็ฯการเรียกมาแสดงแล้วไม่หยุดรอ ส่วน การ show แบบ dialog โปรแกรมจะทำงานในคำสั่งต่อไป ก็ต่อเมื่อ form2 ได้ถูกปิดลง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-10 10:43:44 By : frenchyaoo
 


 

No. 9



โพสกระทู้ ( 213 )
บทความ ( 0 )



สถานะออฟไลน์


เคยแล้วนะครับ คั่งสั่งตัวนี้ ใช้ไม่ได้ครับ

Code
แบบที่ 2 คือสั่งให้ form2 แสดงแบบ dialog
- เขียนคำสั่งควบคุมปุ่มที่จะทำการแสดง form2 ดังนี้
form2 f = new form2 ();
f.ShowDialog(this);
Showdata();


ขอบคุณนะครับเดี๋ยวจะลองเอาไปใช้ดู
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-10 14:55:49 By : SeedNew
 


 

No. 10

Guest


ว่าจะบอกหลายทีแล้ว เจอเขียนกระทู้แบบใช้ภาษาไทยไม่ถูกเลยหมดอารมณ์ตอบทุกที

some where in form1
Form2 form2 = new From2();
form2.FormClosed += FormClosedEventHandler("form2_FormClosed");
form2.ShowDialog();


some where in form1
private void form2_FormClosed(Object sender, FormClosedEventArgs e) 
{
   // bind new data
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-11 10:35:52 By : ห้ามตอบเกินวันละ 2 กระทู้
 


 

No. 11



โพสกระทู้ ( 213 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณครับ เดี๋ยวจะลองเอาไปใช้ดู
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-11 14:36:32 By : SeedNew
 


 

No. 12



โพสกระทู้ ( 249 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ลองศึกษา observer pattern design ดูครับ น่าจะเป็นประโยชน์ อย่างมาก
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-11 17:26:58 By : lee_latee
 


 

No. 13



โพสกระทู้ ( 3 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook Hi5 Blogger

ใช้ delegate น่าจะดีกว่าน่ะครับ ไม่ซับซ้อนอะไรมาก
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-17 14:29:51 By : tiyanon2006
 


 

No. 14



โพสกระทู้ ( 1 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 8 เขียนโดย : frenchyaoo เมื่อวันที่ 2012-10-10 10:43:44
รายละเอียดของการตอบ ::
ขอโทษนะครับ ผมมือใหม่ ยัง งงกับวิธีที่ 1 พี่ช่วยอธิบายวิธีที่ 1 ให้ผมเข้าใจมากกว่านี้หน่อยได้ไมครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-06-09 19:06:19 By : pktkrit
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : C# WinApp มือใหม่ อยากจะ Refresh datagrid ข้ามฟอร์ม ทำยังไง
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่