C# 从窗体中的main访问数组
嗨,我正在visual studio上编写一个c#应用程序。我在main中创建了一个数组,我试图在表单上的单击事件中访问该数组,但它告诉我数组“characters”在当前上下文中不存在。我已经尝试将数组传递给表单,但仍然存在相同的问题。任何帮助都将非常感谢这里是我的代码C# 从窗体中的main访问数组,c#,arrays,forms,C#,Arrays,Forms,嗨,我正在visual studio上编写一个c#应用程序。我在main中创建了一个数组,我试图在表单上的单击事件中访问该数组,但它告诉我数组“characters”在当前上下文中不存在。我已经尝试将数组传递给表单,但仍然存在相同的问题。任何帮助都将非常感谢这里是我的代码 namespace WindowsFormsApplication10 { static class Program { [STAThread] static void Main
namespace WindowsFormsApplication10
{
static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
bool[][] characters = new bool[27][]; // my array characters
characters[1][0] = true;
Application.Run(new Form1());
}
}
}
namespace WindowsFormsApplication10
{
public partial class Form1 : Form
{
int cs1 = 0,cs2=0;
public Form1()
{
InitializeComponent();
}
public void pictureBox1_Click(object sender, EventArgs e)
{
if (characters[1][0] == true) // trying to access member of characters
{ // array but characters does not
// exist in the current context
pictureBox28.Visible = false;
}
}
}
}
数组是在主函数中定义的,并且仅在其作用域中可见 您可以做的最简单的操作是将阵列移动到主阵列之外:
public static bool[][] characters = new bool[27][];
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
characters[1][0] = true;
Application.Run(new Form1());
}
public void pictureBox1_Click(object sender, EventArgs e)
{
if (Main.characters[1][0] == true) // trying to access member of characters
{ // array but characters does not
// exist in the current context
pictureBox28.Visible = false;
}
}
声明为本地到Main
方法。因此,在它的外面是看不见的
如果要在表单1
中使用它,请更改为以下内容:
public partial class Form1 : Form
{
bool[][] characters = null;
int cs1 = 0,cs2=0;
public Form1(bool[][] characters)
{
this.characters = characters;
InitializeComponent();
}
...
...
}
Application.Run(new Form1(characters));
表单Main
,调用如下:
public partial class Form1 : Form
{
bool[][] characters = null;
int cs1 = 0,cs2=0;
public Form1(bool[][] characters)
{
this.characters = characters;
InitializeComponent();
}
...
...
}
Application.Run(new Form1(characters));
你有两个选择:1。将变量设为
程序的静态字段
,或2。将数组作为参数传递给Form1
的构造函数。这不是来自同一个PO的几乎完全相同的问题吗?只要列出所有建议,如果他愿意:)