Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 28.08.2012
Сообщений: 5
.NET 4.x

Граница для вводимых элеменов одномерного массива

24.11.2012, 12:32. Показов 781. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Существует одномерный массив, размерностью [1000], в него я записываю различные данные. Когда в textbox пишу какие то данные с помощью кнопки Add они добавляются в массив, а благодаря кнопкам - btnNext и btnBack я осуществляю передвижение по массиву (назад и вперед). Собственно переход по элементам осуществляется нормально, но проблема в кнопке btnNext - когда я добавляю к примеру какие то данные 1,2,3,4,5,6, и начинаю ходить по массиву вперед и назад, то после того как я достигаю последнего значения которое я ввел у меня происходит проклацывание [я как бы выхожу за рамки введенных элементов и просто происходит клик и чтобы вернуться назад мне нужно кликнуть ровно столько же, сколько я кликнул вперед], короче не могу придумать каким образом поставить границу на вводимые элементы (ну или на кнопку btnNext - нажимать её только в том случае, когда у меня есть последующий элемент массива, а когда нет последующего запретить её нажатие).

Долго заморачивался, так и ничего не придумал.

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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
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 Image_Try
{
    public partial class Form1 : Form
    {
 
        int i = -1;
        Cloud[] m = new Cloud[1000];
 
 
        public Form1()
        {
            InitializeComponent();
        }
 
 
        public void ShowMy()
        {
            if (m[i] != null)
            {
                textBox1.Text = m[i].GameName;
 
            }
        }
 
        private void button1_Click(object sender, EventArgs e) // Добавление записи
        {
            i++;
            m[i] = new Cloud(textBox1.Text);
            if (textBox1.Text.Equals("Castlevania"))
            {
                pictureBox1.Image = Image.FromFile("E:\\Castlevania.jpg"); // Загрузка изображения
            }
            else
            {
 
                if (textBox1.Text.Equals("Lord of Shadows"))
                {
                    pictureBox1.Image = Image.FromFile("E:\\Castlevania.jpg"); // Загрузка изображения
                }
                if (textBox1.Text.Equals("Splatterhouse"))
                {
                    pictureBox1.Image = Image.FromFile("E:\\Splatterhouse.jpg"); // Загрузка изображения
                }
 
                textBox1.Text = "";
            }
        }
 
           
        private void btnNext_Click(object sender, EventArgs e) // [B]Следующая запись[/B]
        {
            if (i < m.Length)
            {
                i++;
                ShowMy();
            
                if (textBox1.Text.Equals("Castlevania"))
                {
                    pictureBox1.Image = Image.FromFile("E:\\Castlevania.jpg"); // Загрузка изображения
                    //textBox1.Text = "";
                }
                else
                {
 
                    if (textBox1.Text.Equals("Lord of Shadows"))
                    {
                        pictureBox1.Image = Image.FromFile("E:\\Castlevania.jpg"); // Загрузка изображения
                    }
 
                    if (textBox1.Text.Equals("Splatterhouse"))
                    {
                        pictureBox1.Image = Image.FromFile("E:\\Splatterhouse.jpg"); // Загрузка изображения
                    }
 
                }
            }
        }
 
        private void btnBack_Click(object sender, EventArgs e) // Предыдущая запись
        {
            if (i >= 1)
            {
                i--;
                ShowMy();
                if (textBox1.Text.Equals("Castlevania"))
                {
                    pictureBox1.Image = Image.FromFile("E:\\Castlevania.jpg"); // Загрузка изображения
                    //textBox1.Text = "";
                }
                else
                {
 
                    if (textBox1.Text.Equals("Lord of Shadows"))
                    {
                        pictureBox1.Image = Image.FromFile("E:\\Castlevania.jpg"); // Загрузка изображения
                    }
 
                    if (textBox1.Text.Equals("Splatterhouse"))
                    {
                        pictureBox1.Image = Image.FromFile("E:\\Splatterhouse.jpg"); // Загрузка изображения
                    }
                    }
            }
        }
 
            }
        }
 
    [Serializable]
 
    class Cloud
    {
        public string GameName;
        public Cloud(string Game)
        {
            GameName = Game;
        }
    }
Изображение формы
Миниатюры
Граница для вводимых элеменов одномерного массива  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.11.2012, 12:32
Ответы с готовыми решениями:

Вычислить сумму элеменов одномерного массива
1. В одномерном массиве, состоящем из n элементов для вычисления суммы элементов требуется записать фрагмент программы: ........ For...

Структура элемента массива игрушка: название, цена, цвет, возрастной диапазон - нижняя граница, верхняя граница
Структура элемента массива игрушка: название, цена, цвет, возрастной диапазон - нижняя граница, верхняя граница. определить: ─...

Среднее арифметическое элеменов массива, больших 10
var b:array of real; i,k:integer; s:real; begin for i:=1 to 9 do begin write('b= ');readln(b); end; k:=0;

4
9 / 9 / 2
Регистрация: 21.05.2012
Сообщений: 53
24.11.2012, 13:00
Используйте List и все решится без проблем.
1
0 / 0 / 0
Регистрация: 28.08.2012
Сообщений: 5
24.11.2012, 13:11  [ТС]
Спасибо, я попробую, правда ещё не знаком с классом list. Если реализую - выложу в теме.
0
9 / 9 / 2
Регистрация: 21.05.2012
Сообщений: 53
24.11.2012, 13:39
Ну в вашем случаю все просто:
C#
1
List<Cloud> m = new List<Cloud>();
Для добавления используйте:
C#
1
m.Add(new Cloud(textBox1.Text));
ну и проверку сделать уже:
C#
1
if (i <= m.Count)
ну в таком плане)
ну и насчет класа Cloud, используйте свойства, или в вашем случаю автосвойства. Поля класса не стоит делать public.
0
0 / 0 / 0
Регистрация: 28.08.2012
Сообщений: 5
24.11.2012, 21:05  [ТС]
Вроде исправил под компонент list, но теперь всё ещё остаются три лишних клика вперед, когда достигаю последней записи. Всё ещё не пойму почему так происходит.

Вот код (Правда совет с public'ами я всё ещё не учёл):

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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
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 Image_Try
{
    public partial class Form1 : Form
    {
 
        int i = 0;
        List<Cloud> m = new List<Cloud>();
 
 
        public Form1()
        {
            InitializeComponent();
        }
 
        public void ShowMy()
        {
            if (m.Count > i)
            {
                textBox1.Text = m[i].GameName;
            }
        }
       
 
        private void button1_Click(object sender, EventArgs e) // Добавление записи
        {
            i++;
            m.Add(new Cloud(textBox1.Text));
           
            if (textBox1.Text.Equals("Castlevania"))
            {
                pictureBox1.Image = Image.FromFile("E:\\Castlevania.jpg"); // Загрузка изображения
            }
            else
            {
 
                if (textBox1.Text.Equals("Lord of Shadows"))
                {
                    pictureBox1.Image = Image.FromFile("E:\\Castlevania.jpg"); // Загрузка изображения
                }
                if (textBox1.Text.Equals("Splatterhouse"))
                {
                    pictureBox1.Image = Image.FromFile("E:\\Splatterhouse.jpg"); // Загрузка изображения
                }
 
                textBox1.Text = "";
            }
        }
 
        private void btnNext_Click(object sender, EventArgs e) // Следующая запись
        {
            if (i <= m.Count)
            {
                i++;
                ShowMy();
 
                if (textBox1.Text.Equals("Castlevania"))
                {
                    pictureBox1.Image = Image.FromFile("E:\\Castlevania.jpg"); // Загрузка изображения
                    //textBox1.Text = "";
                }
                else
                {
 
                    if (textBox1.Text.Equals("Lord of Shadows"))
                    {
                        pictureBox1.Image = Image.FromFile("E:\\Castlevania.jpg"); // Загрузка изображения
                    }
 
                    if (textBox1.Text.Equals("Splatterhouse"))
                    {
                        pictureBox1.Image = Image.FromFile("E:\\Splatterhouse.jpg"); // Загрузка изображения
                    }
 
                }
            }
        }
 
        private void btnBack_Click(object sender, EventArgs e) // Предыдущая запись
        {
          if (i>= 1)
            {
                i--;
                ShowMy();
 
                if (textBox1.Text.Equals("Castlevania"))
                {
                    pictureBox1.Image = Image.FromFile("E:\\Castlevania.jpg"); // Загрузка изображения
                    //textBox1.Text = "";
                }
                else
                {
 
                    if (textBox1.Text.Equals("Lord of Shadows"))
                    {
                        pictureBox1.Image = Image.FromFile("E:\\Castlevania.jpg"); // Загрузка изображения
                    }
 
                    if (textBox1.Text.Equals("Splatterhouse"))
                    {
                        pictureBox1.Image = Image.FromFile("E:\\Splatterhouse.jpg"); // Загрузка изображения
                    }
                }
            }
        }
 
    }
    [Serializable]
 
    class Cloud
    {
        public string GameName;
        public Cloud(string Game)
        {
            GameName = Game;
        }
    }
}
Добавлено через 45 минут
Реализовал данную проблему следующим образом: Добавил Enabled кнопкам, и он решил все мои проблемы с забеганием на перед. Возможно кому-нибудь понадобится эта идея для записи данных.

C#
1
2
3
4
5
6
7
8
9
10
11
12
public void ShowMy()
        {
            if (m.Count > i)
            {
                textBox1.Text = m[i].GameName;
                btnNext.Enabled = true;
            }
            else
            {
                btnNext.Enabled = false;
            }
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.11.2012, 21:05
Помогаю со студенческими работами здесь

произведение элеменов массива, расположенных после максимального по модулю элемента
здравствуйте!помогите пожалуйста решить задачу: в одномерном массиве состоящем из n веществ.элементов вычислить: 1)кол-во элементов...

Произвести обработку одномерного массива указанным способом и сортировку одномерного массива
Я совсем не понимаю как это сделать. А сдать нужно уже завтра Необходимо: 1. Произвести обработку одномерного массива указанным...

Алгоритм для формирования нового одномерного массива из элементов заданного массива
Cоставить алгоритм для формирование нового одномерного массива из элементов заданного массива.

Подгрузить 1 строку двухмерного массива, в ф-цию для одномерного массива
Здравствуйте. Вот играюсь я с массивами и не совсем хватает мне знаний в этом деле. Думал игратся по аналогии с другими языками, да что то...

В одномерном массиве, состоящем из n вещественных элементов, вычислить номер минимального по модулю элемента и сумму модулей элеменов массива.
Задача 1. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) номер минимального по модулю элемента массива; 2)...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru