2012-07-17 24 views
19

मैं किसी अन्य विधि से SubGraphButton_Click(object sender, RoutedEventArgs args) कैसे कॉल कर सकता हूं?बटन को कॉल करने के लिए किसी अन्य विधि से ईवेंट पर क्लिक करें

private void SubGraphButton_Click(object sender, RoutedEventArgs args) 
{ 
} 

private void ChildNode_Click(object sender, RoutedEventArgs args) 
{ 
    // call SubGraphButton-Click(). 
} 
+1

आप इस $ ("# buttonclientid") की तरह jquery का उपयोग कर सकते हैं।(); –

उत्तर

42

आप बस इसे करने के लिए तर्क पारित करके button_click घटना कॉल कर सकते हैं:

ChildNode.Click += SubGraphButton_Click

जो पैटर्न के साथ inkeeping है:

private void SubGraphButton_Click(object sender, RoutedEventArgs args) 
{ 
} 

private void ChildNode_Click(object sender, RoutedEventArgs args) 
{ 
    SubGraphButton_Click(sender, args); 
} 
2

आप बस यह कॉल कर सकते हैं:

SubGraphButton_Click(sender, args); 

अब, अपने SubGraphButton_Click आर्ग के साथ कुछ है, तो आप मुसीबत में हो सकता है, लेकिन आम तौर पर आप उनके साथ कुछ भी नहीं है।

4

आमतौर पर विधि को सीधे कॉल करने के बजाय एक ईवेंट (क्लिक) को ट्रिगर करने का बेहतर तरीका है।

+2

यदि आप एक उदाहरण कोड सेगमेंट जोड़ते हैं तो आपका उत्तर बेहतर होगा, जो दर्शाता है कि आपका क्या मतलब है। –

0

प्रतिनिधि क्लिक के कहने के लिए यह जोड़ें .NET घटनाओं का पालन करें (पर्यवेक्षक)।

24

आप आसानी से यह कोड का निम्न भाग से कर सकते हैं:

button.PerformClick(); 
+0

बस सुंदर! : 3 –

+1

मैं हमेशा इसका उपयोग करता था, लेकिन इसके साथ बहुत से मुद्दों के बाद, मुझे लगता है कि चुना गया उत्तर जाने का एक और अधिक सुरक्षित तरीका है। – Burgo855

+0

@ Burgo855 क्या आप मुझे बता सकते हैं कि आपके पास किस तरह का मुद्दा था? – Pedram

6

आप इस के आसपास काम करने के लिए अलग-अलग तरीके से प्रदर्शन कर सकते हैं। सबसे अच्छा तरीका यह है कि, यदि आपके दोनों बटन एक ही काम करने के लिए मानते हैं, तो आप नौकरी करने के लिए तीसरे कार्य को परिभाषित कर सकते हैं। उदाहरण के लिए:

private void SubGraphButton_Click(object sender, RoutedEventArgs args) 
{ 
    myJob() 
} 

private void ChildNode_Click(object sender, RoutedEventArgs args) 
{ 
    myJob() 
} 

private void myJob() 
{ 
    // Your code here 
} 

लेकिन अगर आप अभी भी अपने तरीके से कर रही पर बने रहे हैं, सबसे अच्छा कार्रवाई है:

private void SubGraphButton_Click(object sender, RoutedEventArgs args) 
{ 
} 

private void ChildNode_Click(object sender, RoutedEventArgs args) 
{ 
    SubGraphButton_Click.PerformClick(); 
} 
9

आप पारित करके button_click घटना कॉल कर सकते हैं ..

private void SubGraphButton_Click(object sender, RoutedEventArgs args) 
{ 
} 

private void ChildNode_Click(object sender, RoutedEventArgs args) 
{ 
    SubGraphButton_Click(sender, args); 
} 
गुजर बिना इसके अलावा

..

private void SubGraphButton_Click(object sender, EventArgs args) 
{ 
} 

private void Some_Method() //this method is called 
{ 
    SubGraphButton_Click(new object(), new EventArgs()); 
} 
3
private void PictureBox1_Click(object sender, EventArgs e) 
{ 
    MessageBox.Show("Click Succes"); 
} 

private void TextBox1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if (e.KeyChar == 13) 
    { 
     PictureBox1_Click(sender, e); //or try this one "this.PictureBox1_Click(sender, AcceptButton);" 
    } 
} 
0

मेरे लिए इस WPF

private void Window_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.Key == Key.Enter) 
     { 
      RoutedEventArgs routedEventArgs = new RoutedEventArgs(ButtonBase.ClickEvent, Button_OK); 
      Button_OK.RaiseEvent(routedEventArgs); 
     } 
    } 
0

उपयोग InvokeOnClick घटना में काम किया। यह तब भी काम करता है जब बटन अदृश्य/अक्षम

संबंधित मुद्दे