Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/34: Рейтинг темы: голосов - 34, средняя оценка - 4.62
3 / 3 / 1
Регистрация: 26.04.2013
Сообщений: 20
1

Обработчик событий динамического объекта кнопки

14.07.2013, 16:05. Показов 6849. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Я создал динамические объекты: button с обработчиком события и textBox1. Подскажите, пожалуйста, как написать так, чтоб было при нажатии OK вывело сообщение с текстом, в котором написано в texbox1? Листинг представлен ниже
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
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 DinamButtonSObrabSob
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
 
        private void Form1_Load(object sender, EventArgs e)
        {
            // создание динамической TexBox под имением txt
            TextBox txt1 = new TextBox();
            txt1.Location = new Point(40, 30);
            txt1.Name = "txt";
            txt1.Size = new Size(200, 22);
            txt1.TabIndex = 0;
            Controls.Add(txt1);
 
            // Создание динамической Button под имением button1
            Button btn = new Button();
            btn.Location = new Point(60, 60);
            btn.Text = "Ok";
            btn.Name = "button1";
            Controls.Add(btn);
            btn.Click += new System.EventHandler(btn_Click); // создание обработчика события при нажатии на кнопку
        }
 
        private void btn_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Вы нажали кнопку: " + (sender as Button).Text);
            MessageBox.Show("Вы ввели в поле ввода: " + (sender as TextBox).Text); // тут что-то не так. Сама программа вылетает с ошибкой: "В экземпляре объекта не задана ссылка на объект." Это почему?
        }
 
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.07.2013, 16:05
Ответы с готовыми решениями:

Обработчик событий у динамического объекта класса
Есть класс, динамически создающий PictureBox. class MyClass { public PictureBox...

Обработчик событий нажатия кнопки в пределах формы
Здравствуйте. Помогите пожалуйста. При нажатии на кнопку создается объект класса. private void...

Обработчик событий для динамического Button
у меня есть radiogroup с 2-мя radiobutton и в зависимости от них устанавливается тот или иной...

[WPF] Добавить обработчик событий для динамического элемента
На Canvas динамически создаются элементы (Label) Этим элементам нужно присвоить обработчик...

10
313 / 176 / 25
Регистрация: 30.04.2011
Сообщений: 1,469
14.07.2013, 16:16 2
C#
1
2
if(MessageBox.Show("Press OK") == DialogResult.OK)
                    MessageBox.Show(textBox1.Text);
0
Заблокирован
15.07.2013, 07:15 3
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
namespace DinamButtonSObrabSob
{
    public partial class Form1 : Form
    {
        public TextBox txt1 = new TextBox();
        public Form1()
        {
            InitializeComponent();
            txt1.Location = new Point(40, 30);
            txt1.Name = "txt";
            txt1.Size = new Size(200, 22);
            txt1.TabIndex = 0;
            Controls.Add(txt1);
 
            Button btn = new Button();
            btn.Location = new Point(60, 60);
            btn.Text = "Ok";
            btn.Name = "button1";
            Controls.Add(btn);
            btn.Click += new System.EventHandler(btn_Click); 
        }
 
 
        private void btn_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Вы ввели в поле ввода: " + txt1.Text);
        }
    }
}
1
3 / 3 / 1
Регистрация: 26.04.2013
Сообщений: 20
15.07.2013, 12:47  [ТС] 4
К сожалению, не будет работать, а будет ошибка, что "txt1" переменный не существует.
А если бы я написал "txt" то работает, но не правильно - сам не извлекает данные из поля ввода, то есть вывело сообщение с пустым текстом.
На всякий случай я вложу проект, чтоб Вы мог посмотреть. Подскажите, пожалуйста, как избавить от ошибки.

Вложение
DinamButton.rar
0
Заблокирован
15.07.2013, 13:01 5
Цитата Сообщение от CherneAndre Посмотреть сообщение
а будет ошибка, что "txt1" переменный не существует
C#
1
2
3
public partial class Form1 : Form
    {
        public TextBox txt1 = new TextBox();
было прочитано? ну и локальное объявление было убрано?
0
3 / 3 / 1
Регистрация: 26.04.2013
Сообщений: 20
15.07.2013, 13:10  [ТС] 6
Цитата Сообщение от MansMI Посмотреть сообщение
было прочитано? ну и локальное объявление было убрано?
Пробовал ваш метод и прошёл без ошибки, но все равно текст пуст, который что написано в поле ввода (txt1).
0
Заблокирован
15.07.2013, 13:32 7
смотрю рар файл, ощущение как будто с слепым/глухим общаюсь
0
3 / 3 / 1
Регистрация: 26.04.2013
Сообщений: 20
15.07.2013, 14:30  [ТС] 8
Цитата Сообщение от MansMI Посмотреть сообщение
смотрю рар файл, ощущение как будто с слепым/глухим общаюсь
Я есть и глухой

А что, там что-то не так?
0
Заблокирован
15.07.2013, 18:38 9
у меня нет привычки выкладывать непроверенный код, на моем компе все работает идеально
1
3 / 3 / 1
Регистрация: 26.04.2013
Сообщений: 20
16.07.2013, 15:34  [ТС] 10
MansMI, наконец-то, я нашёл грубую ошибку: если объявил TextBox txt1 = new TextBox(); прямо в конструкторе Form1(), то работает не правильно. И вот я эту строку убрал и работает на "ура", а объявление находиться выше конструктора Form1() (public TextBox txt1 = new TextBox() ). Спасибо за листинг.
0
Заблокирован
17.07.2013, 17:30 11
CherneAndre, ну осознал ошибку, и слава Богу, безгрешных нет
0
17.07.2013, 17:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.07.2013, 17:30
Помогаю со студенческими работами здесь

Обработчик событий на нажатие кнопки
пишу кункулятор начинаю вешать обработчик событий на нажатие кнопки что бы при нажатии на кнопку...

Обработчик событий кнопки (найти ошибку)
Здравствуйте! Надо написать простой калькулятор, один Lable для вывода значения, два TextField для...

Назначить обработчик событий на кнопки в цикле foreach
Такой простой вопрос. Есть Аж целых 12 Toggle Button. Я их свел в массив и хочу добавить обработчик...

Обработчик событий кнопки Login и проверка пользователя в БД
Добрый день! помогите пожалуйста понять что надо вставить в : public void...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru