Проблемы с MessageBox.Show () - PullRequest
       6

Проблемы с MessageBox.Show ()

2 голосов
/ 02 ноября 2011

Я новичок в коде, и большинство вещей работает, но я не могу запустить этот код. Может кто-нибудь помочь?

Я пытался using System.Forms, но показывалось, что отсутствует пространство имен. Когда я использовал using System.Windows.Forms, это сообщение исчезло. Это не позволяет мне использовать оба.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Windows.Forms;


namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            StreamReader sr = new StreamReader(@"file.csv");
            // for set encoding
            // StreamReader sr = new StreamReader(@"file.csv", Encoding.GetEncoding(1250));

            string strline = "";
            String[] _values = null;
            int x = 0;
            while(!sr.EndOfStream)
            {
                strline = sr.ReadLine();
                _values = strline.Split(',');
                if (_values.Length >= 6 && _values[0].Trim().Length > 0)
                {
                    MessageBox.show(_values[1]);
                }
            }
            sr.Close();

        }
    }
}

Ответы [ 5 ]

5 голосов
/ 02 ноября 2011

Вам нужно сослаться на System.Windows.Forms.dll в вашем проекте. Здесь - подробная инструкция, как это сделать.

5 голосов
/ 02 ноября 2011

Нет такого пространства имен System.Forms, класс, который вы пытались использовать (MessageBox), находится в System.Windows.Forms.Исправив оператор using, ошибка исчезла.

Помните, что для использования этого класса в вашем консольном приложении должна быть ссылка на System.Windows.Forms.dll.

3 голосов
/ 02 ноября 2011

Нет такого пространства имен, как System.Forms , есть только пространство имен с именем System.Windows.Forms , которое имеет класс MessageBox, о котором вы говорите. Чтобы использовать его, вам нужно добавить ссылку на System.Windows.Forms.dll в ваш проект (найдите его на вкладке .NET в диалоговом окне «Добавить ссылку ...»). ) и это будет работать. Также обратите внимание, что MessageBox.Show() требует заглавной буквы "S". Ниже приведена оптимизированная и полностью рабочая версия вашего кода.

using System.IO;
using System.Windows.Forms;

namespace ConsoleApplication7
{
    class Program
    {
        static void Main(string[] args)
        {
            using (StreamReader sr = new StreamReader(@"file.csv"))
            {
                while (sr.Peek() >= 0)
                {
                    string strline = sr.ReadLine();
                    string[] values = strline.Split(',');
                    if (values.Length >= 6 && values[0].Trim().Length > 0)
                    {
                        MessageBox.Show(values[1]);
                    }
                }
            }
        }
    }
}
2 голосов
/ 02 ноября 2011

Сначала вы пытаетесь использовать его в консольном приложении, добавив в свои ссылки System.Windows.Forms dll (из вкладки .Net), а затем добавив его пространство имен.

1 голос
/ 02 ноября 2011

Я немного запутался здесь.нет пространства имен с именем System.Forms.Это всегда System.Windows.Forms.А класс MessageBox определен в System.Windows.Forms

. Вам необходимо вручную добавить ссылку на ваш проект для System.Windows.Forms, поскольку вы работаете в консольном приложении, а не в приложении Windows.Просто добавьте ссылку.

...