我正在为朋友制作一个应用程序,需要用户“输入”一个值,并将其返回给我拥有的 MySQL 代码。这样,显示的内容就会改变。
我的问题是:当我执行“Form1 newForm = new Form1();”时 (这在 DB_Application 中调用)我得到一个 stackoverflow 错误。
public partial class Form1
{
private DBApplication DB_App = new DBApplication();
private void InitializeComponent()
{
this.orderID.Text = "";
this.orderID.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.EnterKey);
.....
this.phoneNumber.Text = DB_App.phone_number;
.....
}
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void EnterKey(object o, KeyPressEventArgs e)
{
if(e.KeyChar == (char)Keys.Enter)
{
//converts the "orderID.Text" to an integer value.
if (!int.TryParse(orderID.Text, out newCurrentID))
MessageBox.Show("not a number");
e.Handled = true;
}
}
}
public class DBApplication : DBInfo
{
Form1 newForm = new Form1(); // infinite loop
public DBApplication()
{
OrderID();
}
private string OrderID ()
{
.... //reads the MySQL info, and outputs the value from the database.
}
}
用户按下“输入”后,我需要将该值返回到“DB_Application”,以便 MySQL 命令可以接收它,并输出一个新值。