使用Mono C#编译器,当前上下文中不存在InitializeComponent

时间:2013-02-10 08:55:37

标签: c# linux ubuntu mono initializecomponent

我在Ubuntu 12.04中使用mcs版本2.10.8.1,我有以下代码:

using System;
using System.Drawing;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog dlg = new OpenFileDialog();
            dlg.ShowDialog();

            if (dlg.ShowDialog() == DialogResult.OK)
            {
                string fileName;
                fileName = dlg.FileName;
                MessageBox.Show(fileName);
            }
        }
    }
}

我使用命令编译

$ mcs source_code.cs -r:System.Windows.Forms.dll -r:System.Drawing.dll 

我收到错误

source_code.cs(11,13): error CS0103: The name `InitializeComponent' does not exist in the current context
Compilation failed: 1 error(s), 0 warnings

在使用Visual Basic的情况下,我看到了很多这个问题的答案;我想知道我应该怎么做才能解决这个问题。谢谢。

1 个答案:

答案 0 :(得分:2)

您的C#代码最初是否在Visual Studio中创建?如果是这样,那么你可能会有一个Form1.Designer.cs文件以及包含你手工编写的代码的文件。您需要在命令行中包含该文件。

如果不是最初在Visual Studo中创建的C#代码,您甚至可能没有InitializeComponent方法......但在这种情况下,您需要更多代码才能执行表单中有用的任何内容(例如创建按钮并挂钩其Click事件)。