1 / 1 / 0
Регистрация: 03.12.2012
Сообщений: 9
1

Считывание введенных данных из TextBox и преобразование в Int

03.12.2012, 12:47. Показов 44395. Ответов 17
Метки нет (Все метки)

Добрый день уважаемые программисты, возникла проблема со считыванием данных из текстбокса. Суть проблеммы:
у меня есть 1 текстбокс в 1 форме 2 во 2-й, как сделать чтобы цифра введенная в 1 текст бокс 1 формы использовалась в некотором коде ( проверялись некоторые условия) а результат выводился во 2-й текст бокс.

Само задание это разработать программу запускающую ограниченное количество копий самой себя, 1 текстбокс 1 формы это кол-во копий. Помогите разобраться как считать из текстбокса цифру.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.12.2012, 12:47
Ответы с готовыми решениями:

Считывание введенных данных из DataGridView
Доброго времени суток. Мне необходимо Считать данные из DGV (это мои координаты точек) и...

Проверка введенных данных в TextBox
Добрый вечер! Имеется программа с 4 текст боксами и кнопкой "Принять". Изначально кнопка неактивна...

Проверка введенных данных в TextBox
ниже приведен код программы решений квадратного уравнения.Нужно проверить являются ли введенные...

Проверка введенных данных в textbox\richbox
Делаю программу которая работает с данными и мне нужно как то отследить введенные данные, т.е. что...

17
47 / 47 / 7
Регистрация: 09.06.2012
Сообщений: 148
03.12.2012, 13:00 2
Convert.ToInt(TextBox.Text)
0
1 / 1 / 0
Регистрация: 03.12.2012
Сообщений: 9
03.12.2012, 13:06  [ТС] 3
те надо задать интовую переменную а потом с помощью Convert.ToInt(TextBox.Text) ей и будет присвоено значение введенное пользователем в 1 текстбокс? И потом конкретно с этой переменной работать дальше по коду да>?
0
47 / 47 / 7
Регистрация: 09.06.2012
Сообщений: 148
03.12.2012, 13:26 4
Элементарно, Ватсон
0
1 / 1 / 0
Регистрация: 03.12.2012
Сообщений: 9
03.12.2012, 13:31  [ТС] 5
а как передать эту переменную второй форме
0
47 / 47 / 7
Регистрация: 09.06.2012
Сообщений: 148
03.12.2012, 13:34 6
С ВинФормс работаешь? Тогда за ответом на этот вопрос тебе сюда. Ответ на вопрос №2.
0
1 / 1 / 0
Регистрация: 03.12.2012
Сообщений: 9
03.12.2012, 13:41  [ТС] 7
Да с ВинФормс. Почитал информацию по ссылке, там автор показывает как передать информацию через текстбоксы, те пользователь ввел инфу в текстбокс 1 формы, а при нажатии кнопки она перешла в текстбокс 2. А меня интересует как переменную из 1 формы( уже с присвоенным значением) во 2 передать. Или я чегото не понял в этой ссылке.
0
47 / 47 / 7
Регистрация: 09.06.2012
Сообщений: 148
03.12.2012, 13:55 8
Не дочитал) Самый подходящий вариант в твоей ситуации, наверное, ответ в подпункте 2.3
0
1 / 1 / 0
Регистрация: 03.12.2012
Сообщений: 9
03.12.2012, 14:25  [ТС] 9
я не понимаю как он передает информацию форме.

Добавлено через 12 минут
как переменную из 1 формы( уже с присвоенным значением) во 2 передать.
1
47 / 47 / 7
Регистрация: 09.06.2012
Сообщений: 148
03.12.2012, 14:34 10
ТекстБокс.Текст - это тоже (условно, потому что это свойство) переменная. На ее место ты можешь поставить любой созданный объект, в частности интовую переменную, т.е. в твоем случае приведенный код для первой формы примет вид:
C#
1
2
3
int x = Convert.ToInt(textBox1.Text);
Form2 f = new Form2(x);
f.ShowDialog();
а конструктор для второй:
C#
1
2
3
4
5
6
7
8
public Form2(int data)
{
    InitializeComponent();
    //Обрабатываем данные
    //Или записываем их в поле
    this.data = data;
}
int data;
0
1 / 1 / 0
Регистрация: 03.12.2012
Сообщений: 9
03.12.2012, 14:52  [ТС] 11
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
 
1Form
namespace WindowsFormsApplication3
{
    public partial class Form1 : Form
    {
 
        public Form1()
        {
            InitializeComponent();
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            
            // Если это не цифра.
            int n;
            if (!int.TryParse(textBox1.Text, out n))
            {
                MessageBox.Show("Введите положительное, целое число больше 1", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
 
            if (n < 1)
            {
                MessageBox.Show("Введите положительное, целое число больше 1", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            else
            {
                int x = Convert.ToInt32(textBox1.Text);
                Form2 f2 = new Form2();
                f2.Show();
 
            }
        }
    }
}
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
namespace WindowsFormsApplication3
{
    public partial class Form2 : Form
    {
        public Form2(int data)
        {
            this.data = data;
        }
 
        int data;
    }
 
}
Добавлено через 7 минут
Ошибка 1 "WindowsFormsApplication3.Form2" не содержит конструктор, который принимает аргументы "0"

Добавлено через 57 секунд
там я еще ограничения добавил на текстбокс чтоб буквы и отр числа не вводили

Добавлено через 1 минуту
как это поправить
0
47 / 47 / 7
Регистрация: 09.06.2012
Сообщений: 148
03.12.2012, 14:59 12
а что ж в коде первой формы создание второй не исправил?
C#
1
2
3
4
5
6
7
 else
            {
                int x = Convert.ToInt32(textBox1.Text);
                Form2 f2 = new Form2();
                f2.Show();
 
            }
Надо-то
Form2 f2 = new Form2(x);

P.S. Вообще говоря, если тебе надо лишь создать заданное в текстбоксе количество форм, можешь не заморачиваться с передачей параметра, а просто создать все формы в одном цикле:

C#
1
2
3
4
5
6
 int kolvo = Convert.ToInt32(textBox1.Text);
for (int i = 0; i > kolvo; i++ )
{
       Form2 f2 = new Form2();
       f2.Show();
}
1
1 / 1 / 0
Регистрация: 03.12.2012
Сообщений: 9
03.12.2012, 15:16  [ТС] 13
ммм ща попробую)

Добавлено через 6 минут
блин теперь при нажатии button вообще ничего не происходит

Добавлено через 3 минуты
kolvo 0 int
n 3 int
+ textBox1 {Text = "3"} System.Windows.Forms.TextBox
+ this {WindowsFormsApplication3.Form1, Text: Form1} WindowsFormsApplication3.Form1

выставил точку останова напротив int kolvo = Convert.ToInt32(textBox1.Text); вот такие результаты

Добавлено через 4 минуты
аааа все все все там надо меньше знак поставить а не больше
в форе
0
47 / 47 / 7
Регистрация: 09.06.2012
Сообщений: 148
03.12.2012, 15:18 14
Советую почитать теории по ООП, потому что это вопрос из его основ. Но вот краткое объяснение от меня:
Form2 - это класс, который позволяет создавать экземпляры. И как любой класс, экземпляр которого можно создать, Form2 содержит конструктор для создания этого самого экземпляра. По умолчанию конструктор формы не имеет параметров (да и конструктор любого не абстрактного и не статического класса), если ты сам не решишь эти параметры в него добавить. При том, конструктор может быть не один, а несколько, главное, чтобы у них набор параметров отличался.
Так вот, применительно к твоей ситуации. Строками
C#
1
2
3
4
5
6
public Form2(int data) // это сигнатура конструктора твоей второй формы, которая показывает, что при вызове конструктора ты обязан передать ему интовый параметр
{
    InitializeComponent();
    this.data = data; //эта строка присваивает внутреннему полю твоей второй формы переданное в конструктор значение, чтобы оно сохранилось после того, как конструктор отработает
}
int data;
Ты переопределяешь конструктор своей второй формы, принуждая его принимать параметры. А значит, теперь ты уже не можешь поместить в свой код строку
C#
1
Form2 f2 = new Form2();
потому что у твоей формы теперь не будет безпараметрического конструктора. (Примечание: Чтобы его восстановить, добавь в код второй формы:
C#
1
2
3
4
public Form2()
{
    InitializeComponent(); 
}
1
1 / 1 / 0
Регистрация: 03.12.2012
Сообщений: 9
03.12.2012, 15:23  [ТС] 15
Спасибо огромное, ты очень сильно выручил
0
47 / 47 / 7
Регистрация: 09.06.2012
Сообщений: 148
03.12.2012, 15:29 16
Пожалуйста
0
1 / 1 / 0
Регистрация: 03.12.2012
Сообщений: 9
03.12.2012, 16:12  [ТС] 17
Блин блин блин мне все таки необходимо передать переменную kolvo второй форме!!! Подскажите как это можно сделать чтобы конкретно с этой переменной работать во 2 форме.
0
47 / 47 / 7
Регистрация: 09.06.2012
Сообщений: 148
03.12.2012, 16:18 18
Уже все написано в предыдущих сообщениях: у второй формы создаешь конструктор
C#
1
2
3
4
5
6
public Form2(int data) // это сигнатура конструктора твоей второй формы, которая показывает, что при вызове конструктора ты обязан передать ему интовый параметр
{
    InitializeComponent();
    this.data = data; //эта строка присваивает внутреннему полю твоей второй формы переданное в конструктор значение, чтобы оно сохранилось после того, как конструктор отработает
}
int data; //это и есть переменная, с которой ты будешь работать в новой форме
а в первой
C#
1
2
3
4
5
6
7
 else
            {
                int x = Convert.ToInt32(textBox1.Text); //считываешь значение в интовую переменную
                Form2 f2 = new Form2(x); //вызываешь конструктор второй формы, передавая ему переменную
                f2.Show(); //отображаешь созданную форму
 
            }
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.12.2012, 16:18
Помогаю со студенческими работами здесь

Считывание данных с textBox
Мне надо, чтоб при нажатии на кнопку считывались данные с текст бокса и обрабатывались следующими...

Проверка введенных данных в TextBox, например, по количеству символов
Всем привет!! Нужно реализовать проверку введенных данных в текстбокс(1.по длине, 2.по языку,...

Сохранение и считывание данных из textbox
Здравствуйте, столкнулся с такой проблемой: У меня есть две формы. 1-Основная на какой проводятся...

Считывание данных из textbox'a посимвольно
Здравствуйте. Такая задача: автомат Милли. Он имеет определённые состояния, действия со стороны...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru