Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
1 / 1 / 0
Регистрация: 30.01.2014
Сообщений: 148

Как данные из поля использовать в методе

19.02.2014, 11:53. Показов 3586. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Хорошего дня и подскажите пожалуйста на примере, как можно сделать, чтобы в программе было поле, в которое можно ввести какое то значение. При нажатии кнопки, когда вызывается метод, в переменную подставлялось бы значение поля. И очень ли сложно сделать, чтобы это значение если программа открывается вновь сохранялось, а не сбрасывалось.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.02.2014, 11:53
Ответы с готовыми решениями:

Форма: как сделать используя данные таблицы из поля со списком, данные второго поля заносятся автоматически
Добрый день уважаемые форумчане! Разрабатывается база по учету трудозатрат. 1.В таблицу заносится поле должностей и поле со...

Как использовать RegisterStartupScript в статическом методе?
У меня имеется метод, который выполняет серверный код, в котором я генерирую строку (называется она у меня js), представляющую собой...

Как использовать переменную в другом методе?
Допустим, есть у меня такой код: public class Test{ public static String result(){ int a = 5; ...

20
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
19.02.2014, 12:21
Вот так, если я верно понял что требуется... А по сохранению - только писать куда-то, к примеру в файл и считывать при запуске. В самой программе могут быть или переменные, или константы.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication6
{
    class Program
    {
        static int n;
 
        static void Main(string[] args)
        {
            n=10;
            Console.WriteLine(sum(n));
            Console.Read();
        }
 
        static int sum(int x)
        {
            return x * 2;
        }
    }
}
1
1 / 1 / 0
Регистрация: 30.01.2014
Сообщений: 148
19.02.2014, 12:23  [ТС]
Вы правильно поняли, только у нас windows forms
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
19.02.2014, 12:27
Цитата Сообщение от roma095 Посмотреть сообщение
Вы правильно поняли, только у нас windows forms
А какая разница? Чем поля и методы форм отличаются от консоли?
0
19.02.2014, 12:51

Не по теме:

insite2012, отличие в том, что если бы вы написали код с использованием формы, то человек бы просто скопировал код и пошел сдавать в универ. А так ему прийдется еще одну тему создавать: "Как создать кнопку на форме и как обработать ее нажатие" ...

0
19.02.2014, 12:56

Не по теме:

Да уж... :D

0
1 / 1 / 0
Регистрация: 30.01.2014
Сообщений: 148
19.02.2014, 12:59  [ТС]
Цитата Сообщение от kodv Посмотреть сообщение

Не по теме:

insite2012, отличие в том, что если бы вы написали код с использованием формы, то человек бы просто скопировал код и пошел сдавать в универ. А так ему прийдется еще одну тему создавать: "Как создать кнопку на форме и как обработать ее нажатие" ...

Я для себя. Просто новичек еще совсем. Создал поле
C#
1
2
3
4
 private void textBox1_TextChanged(object sender, EventArgs e)
        {
 
        }
и уже пытаюсь из него значение передать в метод класса
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
19.02.2014, 13:10
Ааа, Вы про текстовое поле... Так бы сразу и сказали, а то слово поле ассоциируется с другим полем совсем...
Поточнее расскажите, что Вам требуется сделать...
1
1 / 1 / 0
Регистрация: 30.01.2014
Сообщений: 148
19.02.2014, 13:16  [ТС]
Цитата Сообщение от insite2012 Посмотреть сообщение
Ааа, Вы про текстовое поле... Так бы сразу и сказали, а то слово поле ассоциируется с другим полем совсем...
Поточнее расскажите, что Вам требуется сделать...
Прошу прощения, что ввел в заблуждение, учусь только.

C#
1
2
3
4
5
6
7
   private void textBox1_TextChanged(object sender, EventArgs e)
        {
            string SIZEPOSITION;
            SIZEPOSITION = textBox1.Text;
            int SIZEPOSITION1;
            SIZEPOSITION1 = Convert.ToInt32(SIZEPOSITION); 
        }
Я разобрался как достучаться до значения в текстовом поле. Поскольку мне нужно число, я в SIZEPOSITION получил int значение.
Вот что мне непонятно, мне нужно воспользоваться значением SIZEPOSITION в моих методах в различных классах. Скорее всего они будут ругаться, что значение недоступно. Как правильно сделать?

Точно

Ошибка 2 Элемент "SIZEPOSITION1" не существует в текущем контексте.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
19.02.2014, 13:42
Я не совсем понял смысла в обработке по изменению текста в текстовом поле, но раз Вам так надо, то можно сделать так... Только конструкция не очень понятная, зачем Вам обрабатывать это событие, мне непонятно...
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication4
{
    public partial class Form1 : Form
    {
        private int MySize;
 
        public Form1()
        {
            InitializeComponent();
            MySize = 0;
        }
 
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (!int.TryParse(textBox1.Text, out MySize))
                {                    
                    throw new FormatException("Неверный ввод данных!");
                }
            }
            catch (FormatException ex)
            {
                MessageBox.Show(ex.Message);
            }
            
        }
       
    }
}
0
1 / 1 / 0
Регистрация: 30.01.2014
Сообщений: 148
19.02.2014, 13:46  [ТС]
Смотрите, у меня есть текстовое поле. Я ввожу туда цифру 5.
При нажатии на кнопку у меня вызывается метод ГАЗИРОВКА и покупается 5 бутылок
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
19.02.2014, 13:47
Значение из текстового поля можно получить напрямую из любого метода внутри класса. Все эти пляски с переводом в int излишни. Т.е. внутри любого метода класса ты можешь написать:
C#
1
int a = int.Parse(textBox1.Text)
Если же тебе нужна переменная, которую можно изменять из разныз методов, то объявить её нужно не внутри метода, а внутри класса:
C#
1
2
3
4
5
6
7
8
9
int a;
void Method1()
{
    a = 1;
}
void Method2()
{
    a = 2;
}
читайте Шилдта. Глава так и называется "Область видимости и время существования переменных "
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
19.02.2014, 13:56
Лучший ответ Сообщение было отмечено roma095 как решение

Решение

Wow, как круто)))
Ну так бы и сказали. А к чему обрабатывать событие изменения текста в текстовом поле?
Сейчас, будет Вам газировка)))

Добавлено через 7 минут
Вот. Опять же, я не понял смысла использования такой переменной, когда все можно и в методе оставить, просто передавать методу параметром строку из текстового поля...
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication4
{
    public partial class Form1 : Form
    {
        private int MySize;
 
        public Form1()
        {
            InitializeComponent();
            MySize = 0;
        }
 
        void Газировка(string x)
        {
            try
            {
                if (!int.TryParse(x, out MySize))
                {
                    textBox1.Clear();
                    throw new FormatException("Столько газировки не купить нам!");
                }
                else
                {
                    MessageBox.Show("А вот тут мы покупаем нашу газировку!");
                }
            }
            catch(FormatException ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            Газировка(textBox1.Text);
        }
       
    }
}
(PS. Извиняюсь за использование кириллицы, я это специально... Чтобы понятнее было.)
0
1 / 1 / 0
Регистрация: 30.01.2014
Сообщений: 148
19.02.2014, 14:19  [ТС]
Почитал главу Шилдта. Из нее я понял, что переменная будет доступна только внутри метода и при выходе из метода будет равна нулю. Но у меня же текстовое поле, которое получило значение. Оно находится в другом совершено классе - public partial class Form1 : Form

Я попробовал стукнуться в него, создав дубль в методе Form1 Form1 = new Form1();
Но всеравно не видится
0
192 / 199 / 82
Регистрация: 11.04.2013
Сообщений: 1,086
19.02.2014, 14:45
roma095,

В выше приведенном коде переменная MySize объявлена внутри класса и поэтому она доступна во всех методах класса

C#
1
2
3
public partial class Form1 : Form
    {
        private int MySize;

Попробуй ее оттуда убрать и засунуть скажем сюда и посмотри че будет

C#
1
2
3
4
private void button1_Click(object sender, EventArgs e)
        {
          private int MySize;
        }

P.S. теперь газировку будет можно купить всегда

C#
1
2
3
4
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!(Char.IsDigit(e.KeyChar))) e.Handled = true;
        }
Добавлено через 8 минут
roma095, Вот тебе еще простой пример на условие видимости переменных

C#
1
2
3
4
5
6
for (int i =0; i<10; i++)
{ 
///
}
 
MessageBox.Show(i.ToString()); // тут выдаст исключение
переменная i не доступна снаружи , т.к. объявлена внутри цикла
1
1 / 1 / 0
Регистрация: 30.01.2014
Сообщений: 148
19.02.2014, 15:09  [ТС]
Блин, я походу совсем тупой
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public partial class Form1 : Form
    {
 
 private void button6_Click(object sender, EventArgs e) //ТУТ КНОПОЧКА ВЫЗЫВАЕТ МЕТОД
        {
           AVTOMAT_GAZIROVKI AVTOMAT_GAZIROVKI = new AVTOMAT_GAZIROVKI();
           AVTOMAT_GAZIROVKI.PAYMENT();
 
 
        }
  public void textBox1_TextChanged(object sender, EventArgs e)
        {
            string SIZEPOSITION;
            SIZEPOSITION = textBox1.Text;
            int SIZEPOSITION1;
            SIZEPOSITION1 = Convert.ToInt32(SIZEPOSITION);  
           
        } 
 
public class AVTOMAT_GAZIROVKI
{
ublic void PAYMENT() // Метод покупки 1 лота USD-3.14 по лучшей цене
        {
           
AD.CreateLimitOrder("66512-000", "FORTS", "USD-3.14", needDate, "buy_1_usd314_zayavki", "RUR", "B", SIZEPOSITION1, pricepokupkamarket, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 0);
            
 
      }
}
У меня есть кнопка button6_Click, при нажатии на которую я вызываю метод PAYMENT из класса AVTOMAT_GAZIROVKI. Мне нужно чтобы этот метод знал что такое SIZEPOSITION1. Ибо в текстовое поле на форме вводят значение.
0
192 / 199 / 82
Регистрация: 11.04.2013
Сообщений: 1,086
19.02.2014, 15:19
roma095,

C#
1
2
3
4
5
6
7
8
 public void textBox1_TextChanged(object sender, EventArgs e)
        {
            string SIZEPOSITION;
            SIZEPOSITION = textBox1.Text;
            int SIZEPOSITION1;
            SIZEPOSITION1 = Convert.ToInt32(SIZEPOSITION);  
           
        }
int SIZEPOSITION1 объявлена внутри метода textBox1_TextChanged и поэтому она не доступна за пределами этого метода

А вот теперь она доступна
C#
1
2
3
4
5
6
7
8
9
10
 
            int SIZEPOSITION1;
public void textBox1_TextChanged(object sender, EventArgs e)
        {
            string SIZEPOSITION;
            SIZEPOSITION = textBox1.Text;
 
            SIZEPOSITION1 = Convert.ToInt32(SIZEPOSITION);  
           
        }
Добавлено через 5 минут

Не по теме:

Грааль пишешь? Граалей не существует!

1
1 / 1 / 0
Регистрация: 30.01.2014
Сообщений: 148
19.02.2014, 15:24  [ТС]
Не по теме. Грааль уже давно найден. А вот автоматизация геммор.

По теме: Вынес я переменную, но ведь у меня кнопка обращается к другому классу. И уже он ругается, что не видит SIZEPOSITION1. Получается, что я каким то образом должен переменную другого класса сообщить ниже
0
192 / 199 / 82
Регистрация: 11.04.2013
Сообщений: 1,086
19.02.2014, 15:42
Лучший ответ Сообщение было отмечено roma095 как решение

Решение

roma095, выложи весь код в споллер

Добавлено через 15 минут
roma095, чтобы метод AVTOMAT_GAZIROVKI.PAYMENT(); мог принимать что то он должен быть соответсвующим образом описан к классе;

C#
1
2
3
4
5
6
7
8
public class A 
{
public void PAYMENT(int  x)
{
///
}
 
}
И тогда ему можно передать переменную

C#
1
2
A AVTOMAT_GAZIROVKI = new A();
A.PAYMENT(SIZEPOSITION1);
0
1 / 1 / 0
Регистрация: 30.01.2014
Сообщений: 148
19.02.2014, 15:42  [ТС]
Все, вроде указал в названии метода в скобках (int SIZEPOSITION1) и ошибки пропали. Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.02.2014, 15:42
Помогаю со студенческими работами здесь

Как использовать методы в методе другого класса?
Подскажите пожалуйста, как создать метод который будет отчищать комбобокс и заполнять его новыми заданными данными в момент определенного...

Как использовать int в методе с параметрами Comparable?
Подскажите пожалуйста как правильно передать int а не Integer в статический метод в котором параметр типа Comparable? Что то вроде...

Как использовать глобальную переменную в статическом методе
Вот у меня есть отдельный клас (Смотрите закомментированую строчку): static void UploadAvatar() { Form1...

Среднее геометрическое. Как сам массив использовать в методе
Среднее геометрическое всегда 1. Не пойму, как сам массив использовать в методе. Заранее спасибо. using System; using...

Возможно ли в методе server.transfer использовать абсолютный адрес URL и как?
возможно ли в методе server.transfer использовать абсолютный адрес URL и как?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru