Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> помогите! не видна переменная в Form1.cs 
:(
    Опции темы
newerwinter
Дата 13.10.2011, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 6.12.2010

Репутация: нет
Всего: -1



Здравствуйте, столкнулся вот с такой проблемой, по идее она не сложная, но выход не могу найти уже 2 суток, все перепробовал.Итак, теперь подробней.
Задача заключается: я ввожу с командной строки следущее ... (С:\Program.exe 3) т.е 3 это параметр(как я понимаю) и при открытии формы я хочу чтобы этот параметр передавался в Label1. text что для этого сделал я: 
Код

using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public static class Program
    {
        /// <summary>
        /// Главная точка входа для приложения.
        /// </summary>
       
        [STAThread]
  
        static void Main(string[] args)
        {
            for (int i = 0; i < args.Length;i++)
            {
                MessageBox.Show(args[i]);
//тут работает все хорошо
               
            }
                                    
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}
  
Код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

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

        private void Form1_Load(object sender, EventArgs e)
        {
            label1.Text = program.args[i]
                
                    //и вот тут у меня ничего не работает
            

        }
    }
}


я пробовал также присваивать Label1 свойство public и internal в Form1.Designer.cs
что мне делать? где я копаю не там, я читал разделы про глобальные переменные но такого не нашел,заранее благодарен
PM MAIL   Вверх
MasterOfCode
Дата 13.10.2011, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


elwin
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 24.4.2008
Где: World.Russia.Tyum en

Репутация: 4
Всего: 27



Конечно не будет работать, переменную i он не видит.
Код

label1.Text = program.args[i]

Ну и знак ; нужно ставить.





--------------------
user posted image
PM ICQ   Вверх
newerwinter
Дата 13.10.2011, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 6.12.2010

Репутация: нет
Всего: -1



Цитата(MasterOfCode @ 13.10.2011,  11:51)
Конечно не будет работать, переменную i он не видит.
Код

label1.Text = program.args[i]

Ну и знак ; нужно ставить.

не работает, я уже и без i пытался запустить, эффект тот же )
Код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

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

        private void Form1_Load(object sender, EventArgs e)
        {
            label1.Text = program.args[0];
// где 0 это и есть наш входной параметр(цифра 3) первый по списку
               
            

        }
    }
}


он не то то i, он args не видит 

Это сообщение отредактировал(а) newerwinter - 13.10.2011, 11:59
PM MAIL   Вверх
MasterOfCode
Дата 13.10.2011, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


elwin
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 24.4.2008
Где: World.Russia.Tyum en

Репутация: 4
Всего: 27



А, и в классе program создай public переменную args, и на этапе запуска ее инициализируй.


--------------------
user posted image
PM ICQ   Вверх
newerwinter
Дата 13.10.2011, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 6.12.2010

Репутация: нет
Всего: -1



Цитата(MasterOfCode @ 13.10.2011,  12:21)
А, и в классе program создай public переменную args, и на этапе запуска ее инициализируй.

хорошо, но снова какие то кастыли...
Код

using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    
    

    public  class Program
    {
       
        /// <summary>
        /// Главная точка входа для приложения.
        /// </summary>
        [STAThread]
        public string[] args;
        static void Main(args[])
        {
            for (int i = 0; i < args.Length;i++)
            {
                MessageBox.Show(args[i]);
                
               
            }
                                    
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
       
    }
       
}
  

не работает...(
1. в функции Main не обнаруживается args
2. в Form1. cs args также не виден
3.а при компиляции этого кода возникает ошибка "Требуется идентификатор"    

Это сообщение отредактировал(а) newerwinter - 13.10.2011, 12:45
PM MAIL   Вверх
MasterOfCode
Дата 13.10.2011, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


elwin
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 24.4.2008
Где: World.Russia.Tyum en

Репутация: 4
Всего: 27



Код

using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
    
    
    public  class Program
    {
       
        /// <summary>
        /// Главная точка входа для приложения.
        /// </summary>
        [STAThread]
        public string[] args;
        static void Main(string[] args)
        {
            this.args = args;
            for (int i = 0; i < args.Length;i++)
            {
                MessageBox.Show(args[i]);
                
               
            }
                                    
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
       
    }
       
}
  


Мы конечно можем сейчас долго тут разбирать неправильный синтаксис и ни чему не научимся. Лучше открой книгу, того же Рихтера и прочитай про переменные. 


--------------------
user posted image
PM ICQ   Вверх
newerwinter
Дата 13.10.2011, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 6.12.2010

Репутация: нет
Всего: -1



Цитата(MasterOfCode @ 13.10.2011,  12:52)
Код

using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
    
    
    public  class Program
    {
       
        /// <summary>
        /// Главная точка входа для приложения.
        /// </summary>
        [STAThread]
        public string[] args;
        static void Main(string[] args)
        {
            this.args = args;
            for (int i = 0; i < args.Length;i++)
            {
                MessageBox.Show(args[i]);
                
               
            }
                                    
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
       
    }
       
}
  


Мы конечно можем сейчас долго тут разбирать неправильный синтаксис и ни чему не научимся. Лучше открой книгу, того же Рихтера и прочитай про переменные.

Ошибка    1    Атрибут "STAThread" не допускается для этого типа объявления. Он допустим только для объявлений "method".    C:\Documents and Settings\Admin\Рабочий стол\WindowsFormsApplication1\WindowsFormsApplication1\Program.cs    14    10    WindowsFormsApplication1
Ошибка    2    Ключевое слово "this" не может использоваться в инициализаторах статических свойств, методов или полей    C:\Documents and Settings\Admin\Рабочий стол\WindowsFormsApplication1\WindowsFormsApplication1\Program.cs    18    13    WindowsFormsApplication1

кто поможет разобраться с данной проблемой разбогатеет на 5 wmz!
PM MAIL   Вверх
MasterOfCode
Дата 13.10.2011, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


elwin
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 24.4.2008
Где: World.Russia.Tyum en

Репутация: 4
Всего: 27



public string[] args;
Перемести выше [STAThread]


--------------------
user posted image
PM ICQ   Вверх
newerwinter
Дата 13.10.2011, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 6.12.2010

Репутация: нет
Всего: -1



Цитата(MasterOfCode @ 13.10.2011,  13:09)
public string[] args;
Перемести выше [STAThread]

Код

using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{


    public class Program
    {

        /// <summary>
        /// Главная точка входа для приложения.
        /// </summary>
        public string[] args;
        [STAThread]
        static void Main(string[] args)
        {
            this.args = args;
            for (int i = 0; i < args.Length; i++)
            {
                MessageBox.Show(args[i]);


            }
            
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }

    }

}

Ошибка    1    Ключевое слово "this" не может использоваться в инициализаторах статических свойств, методов или полей    C:\Documents and Settings\Admin\Рабочий стол\WindowsFormsApplication1\WindowsFormsApplication1\Program.cs    18    13    WindowsFormsApplication1

PM MAIL   Вверх
newerwinter
Дата 13.10.2011, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 6.12.2010

Репутация: нет
Всего: -1



проблема решена!
PM MAIL   Вверх
Экскалупатор
Дата 13.10.2011, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 11
Всего: 24



newerwinter, в чем твоя проблема? в ветке для новичков есть прикрепленная тема: Как обратиться к объекту другой формы. формы это те же классы. создай там метод и передай в него свои аргументы, или можно прямо в конструктор передать и в форме их обработать. не надо никаких ГЛОБАЛЬНЫХ переменных.
PM MAIL ICQ   Вверх
Biniproob
Дата 5.12.2022, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 30.10.2022

Репутация: нет
Всего: нет




Модератор: Сообщение скрыто.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1478 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.