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 > ขออนุญาติสอบถามเรื่องการ Pass parameter in EventHandler [C#] มีวิธีส่งแบบไหนครับ?



 

ขออนุญาติสอบถามเรื่องการ Pass parameter in EventHandler [C#] มีวิธีส่งแบบไหนครับ?

 



Topic : 123694



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



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




วิธีที่ผมใช้ครับ (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 ExampleEventHandler {
    public partial class EventTutorial : Form {

        public event EventHandler openCustomDialog;

        public EventTutorial() {
            InitializeComponent();
        }

        private void EventTutorial_Load(object sender, EventArgs e) {

            openCustomDialog += EventTutorial_openCustomDialog;
        }

        private void EventTutorial_openCustomDialog(object sender, EventArgs e) {

            MessageBox.Show("Hello Event!","Message");
        }

        private void mbtnSendEvent_Click(object sender, EventArgs e) {
            EventHandler handler = openCustomDialog;
            if (handler != null) handler(this, e);
        }

    }
}


คือตอนนี้ผมต้องการส่ง Parameter เป็น string, int ผ่าน Event ได้ไหมครับ จริงๆ หากมีวิธีอื่นๆ ที่ใช้ได้เหมือนกันก็ได้นะครับ ขออภัยมือใหม่จริงๆครับ



Tag : .NET, Win (Windows App), C#









ประวัติการแก้ไข
2016-07-04 19:21:02
2016-07-04 22:00:20
2016-07-04 22:18:52
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-07-04 19:19:25 By : cre_kiwsan View : 1051 Reply : 10
 

 

No. 1



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



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


เกาะๆไปด้วยครับ อยากรู้เช่นกัน






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-04 21:11:13 By : deksoke
 


 

No. 2

Guest


Quote:
https://drive.google.com/file/d/0B2SR1OxxycOIZ0VkNk9DTWVFeXM/edit?pref=2&pli=1


รบกวนแปลงเป็น VB ให้หน่อย (ผมฝากผ่านคุณห้ามตอบเกินวันละสองกระทู้)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-04 21:17:47 By : หน้าฮี
 

 

No. 3



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



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


เอิ่มมม เหมือนผมเล่นตลกเลยนะครับ หวังว่า Example ของผมจะเข้าใจง่าย และเป็นประโยชน์กับคุณ Furikuri และท่านอื่นๆด้วยนะครับ ไว้จะผมจะแวะเวียนมาใหม่ ^^'

Answer Code (C#)
using System;
using System.Windows.Forms;

namespace ExampleEventHandler {
    public partial class EventTutorial : Form {

        public event EventHandler openCustomDialog;

        public EventTutorial() {
            InitializeComponent();
        }

        private void EventTutorial_Load(object sender, EventArgs e) {

            openCustomDialog += EventTutorial_openCustomDialog;
        }

        private void EventTutorial_openCustomDialog(object sender, EventArgs e) {
            MessageBox.Show("Hello Event! : " + sender, "Message");
        }

        private void mbtnSendEvent_Click(object sender, EventArgs e) {
            EventHandler handler = openCustomDialog;
            Button btnParameter = sender as Button;
            if (btnParameter != null) {
                btnParameter.Text = "I was clicked! ^^'";
            }

            if (handler != null) handler(btnParameter.Text, e);
        }
    }

}



ประวัติการแก้ไข
2016-07-04 22:58:33
2016-07-04 22:59:19
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-04 22:52:35 By : cre_kiwsan
 


 

No. 4



โพสกระทู้ ( 4,436 )
บทความ ( 23 )



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

ลองมองในรูปแบบการ delegate ดูครับ
เผื่อจะง่าย และ ใช้งานกว้างขึ้น

http://www.maxmodify.com/article/4/delegate-%E0%B9%83%E0%B8%99-c-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3

https://gpluspluss.com/2012/06/24/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%83%E0%B8%8A%E0%B9%89%E0%B8%87%E0%B8%B2%E0%B8%99-deletgate-basic/

https://gpluspluss.com/2008/10/01/delegates-and-events-%E0%B8%95%E0%B8%AD%E0%B8%99%E0%B8%97%E0%B8%B5%E0%B9%88-1/

http://xnanoob.exteen.com/20080614/events-c
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-05 08:34:22 By : lamaka.tor
 


 

No. 5



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



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


ตอบความคิดเห็นที่ : 4 เขียนโดย : lamaka.tor เมื่อวันที่ 2016-07-05 08:34:22
รายละเอียดของการตอบ ::

ขอบคุณ TOR_CHEMISTRY มากครับ แต่เดี๋ยวผมขอหาช่วงเวลาทำ แล้วจะกลับมาราบงานอีกรอบนะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-06 14:17:43 By : cre_kiwsan
 


 

No. 6



โพสกระทู้ ( 4,436 )
บทความ ( 23 )



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

จัดปายครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-06 14:56:41 By : lamaka.tor
 


 

No. 7



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



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


delegate เรอะ 555+ กำลังหาอ่านอยู่เมื่อเช้านี่เลยครับ
ความรู้สึกหลังจากที่อ่านแล้วให้อารมณ์เหมือนการส่ง function ให้ทำ callback ในภาษา javascript เลยนะ
งืมๆๆ เพียงแต่ delegate นั้น function ที่ส่งไป return type และ parameter ต้องตรงกันเป๊ะๆครับ
แตกต่างจาก function ใน javascript ที่มันไม่ได้สนใจอะไรพวกนี้
ไม่ส่งอะไรไปก็ได้ค่าเป็น null, undefined กันไป

แต่ทั้งนี้ทั้งนั้น ยังไม่เข้าใจว่าจะสามารถนำไปใช้ในโอกาสแบบไหนได้บ้างนี่สิ
นึกเคสที่จะใช้งาน delegate ไม่ออกเลย ใครเคยใช้แนะนำหน่อยนะครับ

http://www.maxmodify.com/article/4/delegate-%E0%B9%83%E0%B8%99-c-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3

https://gpluspluss.com/2012/06/24/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%83%E0%B8%8A%E0%B9%89%E0%B8%87%E0%B8%B2%E0%B8%99-deletgate-basic/


ประวัติการแก้ไข
2016-07-06 21:30:35
2016-07-06 21:33:05
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-06 21:19:54 By : deksoke
 


 

No. 8



โพสกระทู้ ( 4,436 )
บทความ ( 23 )



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

ตอบความคิดเห็นที่ : 7 เขียนโดย : deksoke เมื่อวันที่ 2016-07-06 21:19:54
รายละเอียดของการตอบ ::
อย่างว่าครับ

ขนาดโค้ดต่างประเทศก็ไม่ค่อยใช้กันจริงๆจัง
ใครจะมานั่งสร้าง delegate เพิ่อใช้ function ต่างๆกัน ส่วนใหญ่เขาก็เรียกใช้จากตัว function น่าจะง่ายกว่า

แต่ตามความคิดผม delegate น่าจะจัดระเบียบ function ได้ง่ายครับในกรณีที่เรามีโค๊ดที่คล้ายๆกันเยอะเกินไป


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-07 08:27:21 By : lamaka.tor
 


 

No. 9

Guest


ผมสรุปแบบง่ายฯให้ฟัง Delegate มันคืออะไร
ตัวอย่างที่คุณเข้าใจและให้มันอยู่แค่ 2. ครับ

1. แนวทางเดิมฯ --> 2.Delegate --> 3. LINQ --> 4. LAMPDA


ผมอธิบายด้วยภาพและ Source code (VB ผมเขียน C# ได้คล่องยิ่งกว่า VB)

x2_Delegate

Code (VB.NET)
Public Class Calculator : Inherits Form

    Private Delegate Function DelegateFormula(ByVal m As Double, ByVal n As Double) As Double
    Private Formula As New Dictionary(Of String, DelegateFormula)() From {{"+", Function(m, n) m + n},
                                                                          {"-", Function(m, n) m - n},
                                                                          {"*", Function(m, n) m * n},
                                                                          {"/", Function(m, n) m / n}
                                                                         }
    'Make Love Click
    Private Sub WhenMakeLove(sender As Object, e As EventArgs) Handles btnPlus.Click, btnSubstract.Click, btnMultiply.Click, btnDivision.Click
        Dim op As String = DirectCast(sender, Button).Tag
        Dim dict = Formula.ElementAt((New Random).Next(0, Formula.Count - 1)) ' Rnd() As Single
        txtResult.Text = "N/A"
        If (("+-*/").Contains(op)) AndAlso (IsNumeric(txtA.Text) AndAlso IsNumeric(txtB.Text)) AndAlso (Not (op = "/" AndAlso CDbl(txtB.Text) = 0)) Then
            txtResult.Text = Formula(op).Invoke(txtA.Text, txtB.Text)
        End If

    End Sub
End Class



ผมเลือกใช้ VB มากกว่า C# เสมอ


ปล. ลองสร้างฟอร์มขึ้นมา ลากคอนโทรลมาวาง ตั้งชื่อตาม Source code คุณก็จะรู้คำตอบด้วยตัวเอง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-08 19:16:45 By : หน้าฮี
 


 

No. 10



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



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


ตอบความคิดเห็นที่ : 9 เขียนโดย : หน้าฮี เมื่อวันที่ 2016-07-08 19:16:45
รายละเอียดของการตอบ ::
เข้าใจคอนเซ็ปนะครับ แต่โค้ดนี่จะล้ำไปไหน 555+
ขอบคุณมากเลยครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-08 23:34:56 By : deksoke
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ขออนุญาติสอบถามเรื่องการ Pass parameter in EventHandler [C#] มีวิธีส่งแบบไหนครับ?
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 01
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 อัตราราคา คลิกที่นี่