2017-07-16 1 views
-8

Ich habe ein onLoad Ereignis und es enthält die Variable, die Daten aus der Datenbank nimmt und jetzt muss ich diese Zeichenfolge an ein onclick Ereignis einer Schaltfläche übergeben, so dass, wenn es gedrückt wird, ich Operationen ausführen kann. Ich muss auf die Wortvariable von load zu onclick zugreifen.Wie übergibt man eine Zeichenfolge vom OnLoad-Ereignis an ein Clickevent in 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;  
using MySql.Data.MySqlClient;  
namespace WindowsFormsApplication1 
{ 
    public partial class Form2 : Form 
    { 

     public string word, alphabets; 
     public int chances, score; 

     public Form2() 
     { 
      InitializeComponent(); 
     } 

     public void Form2_Load(object sender, EventArgs e) 
     { 
      chances = 8; 
      score = 0; 
      alphabets = "abcdefghijklmnopqrstuvwxyz"; 
      Random rnd = new Random(); 
      int wordid = rnd.Next(1, 127); 
      label12.Text = chances.ToString(); 
      label13.Text = score.ToString(); 
      try 
      { 
       string myConnection1 = "datasource=localhost;port=3306;username=root;password=amit;"; 
       MySqlConnection myConn1 = new MySqlConnection(myConnection1); 
       myConn1.Open(); 
       int count = 0; 
       var cmd = new MySqlCommand(" select words from gamers.gamewords where id='" + wordid + "';", myConn1); 
       string word = (string)cmd.ExecuteScalar(); 
       int length = word.Length; 
       label4.Text = length.ToString(); 
       label7.Text = alphabets; 
       label14.Text = word; 
       myConn1.Close(); 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show(ex.Message); 
      } 

     } 

     public void button1_Click(object sender, EventArgs e) 
     { 
      //Code for Game Begins 
      int i = 0, j = 0; 
      int lengthcount = 0; 
      string choice = textBox1.Text; 
      string guess; 
      label14.Text = word + "**"; 
      // for (i = 0; i<word.Length; i++) 
      /* { 
        if (word[i] == choice[0]) 
        { 
         label14.Text = "Good Guess! You Scored a point"; 
         lengthcount++; 
         score += 5; 
         guess = choice; 
         label9.Text= guess; 
        } 
        else 
        { 
         chances--; 
         guess = "______"; 
         if (chances == 0) 
         { 
          label14.Text = "You Lost the Game! Turns Over"; 
          button1.Enabled = false; 
         } 
         else 
         { 
          label14.Text = "Sorry! Try Again"; 
         } 
        } 

       }*/ 
     } 
    } 
} 
+2

Bitte bearbeiten Sie Ihre Frage und fügen Sie den Code zur Frage – Sybren

+2

bitte Postleitzahl als Text, damit die Leute können versuchen, Ihren Code zu kompilieren und das Problem zu reproduzieren. – dlatikay

+2

Mögliches Duplikat von [Wie teile ich Variablen zwischen Mitgliedern in einer WinForms-Anwendung (static-Schlüsselwort verwenden)?] (Https://stackoverflow.com/questions/35846041/how-do-i-share-variables-between-members- in-a-winforms-Anwendung-verwenden-statisch-k) – derloopkat

Antwort

0

Sie die button1_Click wie eine Methode aufrufen können, aber Sie können einen Wert nicht direkt übergeben, weil das Click Ereignis von der Standard-EventHandler behandelt werden, so dass Sie nur die beiden Parameter haben: object sender und EventArgs e :

button1_Click(sender, e); 

Aber Sie können eine Eigenschaft (oder ein Feld/Variable) in der Form2 Klasse verwenden, einen Wert aus der Form2_Load Methode zu halten, und nach dann in der button1_Click Methode lesen:

public partial class Form2 : Form 
{ 
    // ... 
    private string ValueToHold { get; set; } 
    // ... 
    public void Form2_Load(object sender, EventArgs e) 
    { 
     // ... 
     ValueToHold = "something"; 
     // ... 
    } 
    public void button1_Click(object sender, EventArgs e) 
    { 
     // ... 
     // Use the ValueToHold here! 
     // ... 
    } 
} 
Verwandte Themen