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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DataGridView 
:(
    Опции темы
Legolas
Дата 8.6.2007, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Имеется DataGridView, при нажатии кнопки хотелось бы поменять значение в одной из ячеек. Делаю так - выдает ошибку.

Код

public string istr;
        public string[] parts;
        public int irek;
        public Form5(string str)
        {
            InitializeComponent();
            istr = str;
           
            



            char[] seps = { ' ' };
            string[] massiv = File.ReadAllLines("База.txt");
            for (int u = 0; u < massiv.Length; u++)
            {
                if ((massiv[u].StartsWith(istr)) && (istr != null))
                {
                    string[] parts = massiv[u].Split(seps);
                    for (int i = 0; i < parts.Length; i++) ;
                    dataGridView1.Rows.Clear();
                    dataGridView1.Rows.Add(parts[0], parts[1], parts[2], parts[3], parts[4], parts[5], parts[6], parts[7], parts[8], parts[9], parts[10]);

                    string rek = parts[10];
                    
                    irek = int.Parse(rek);
                    
                    if (irek > 0)
                    {
                        richTextBox2.Text = "-" + irek + " " + "р.";                        
                    }
                    else if (irek < 0)
                    {
                        richTextBox2.Text = irek + " " + "р.";
                    }
                    else { }

                    

                }
                else { }
            }
            
        }

        
        

        private void button1_Click(object sender, EventArgs e)
        {
            string pl = richTextBox1.Text;
            int ipl;
            ipl = int.Parse(pl);
            int itable = irek + ipl;
            string table = String.Format("{0:D}", itable);
            parts[1] = table;
        }


Это сообщение отредактировал(а) Legolas - 8.6.2007, 18:31
PM MAIL   Вверх
Retro
Дата 8.6.2007, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Диалектик
***


Профиль
Группа: Участник Клуба
Сообщений: 1934
Регистрация: 28.6.2005
Где: Киев

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



Legolas, ты бы писал сразу какая ошибка и в какой строке. smile 

Было бы легче найти проблему.
PM MAIL   Вверх
Legolas
Дата 8.6.2007, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Ошибка в 56 строке - "Object reference not set to an instance of an object."
PM MAIL   Вверх
tol05
Дата 8.6.2007, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

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



Цитата(Legolas @  8.6.2007,  18:30 Найти цитируемый пост)
if ((massiv[u].StartsWith(istr)) && (istr != null))    
                {    
                    string[] parts = massiv[u].Split(seps);

локальная parts будет инициализирована, и то, при условии что...
а массив класса? ("public string[] parts;") Где инициализируется?

И вобще что это такое?
Цитата(Legolas @  8.6.2007,  18:30 Найти цитируемый пост)
public string istr;    
        public string[] parts;


Цитата(Legolas @  8.6.2007,  18:30 Найти цитируемый пост)
if ((massiv[u].StartsWith(istr)) && (istr != null))    
                {    
                    string[] parts = massiv[u].Split(seps);


Не есть хорошо для анализа.

Это сообщение отредактировал(а) tol05 - 8.6.2007, 22:18


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
SherbAnt
Дата 10.6.2007, 06:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Может проблема в том что компилятор "понимает" в строчке

Код

parts[1] = table;


parts за вот эту

Код

public string[] parts;   //строка 2


а она ведь ни разу не была присвоена.
Может я ошибаюсь, но разве можно присваивать  второму элементу массива значения, если не пустой первый элемент?


П.С. сейчас нет при себе компилятора что бы проверить

Это сообщение отредактировал(а) SherbAnt - 10.6.2007, 06:34
PM MAIL Skype   Вверх
Legolas
Дата 10.6.2007, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Код

public string [] parts; //делаю доступным для всей формы
public Form5(string str)
        {
            InitializeComponent();
            istr = str;
           
            
            char[] seps = { ' ' };
            string[] massiv = File.ReadAllLines("База.txt");
            for (int u = 0; u < massiv.Length; u++)
            {
                if ((massiv[u].StartsWith(istr)) && (istr != null))
                {
                    parts = massiv[u].Split(seps);//Здесь изменил
                    for (int i = 0; i < parts.Length; i++) ;
                    dataGridView1.Rows.Clear();
                    dataGridView1.Rows.Add(parts[0], parts[1], parts[2], parts[3], parts[4], parts[5], parts[6], parts[7], parts[8], parts[9], parts[10]);
                    string rek = parts[10];
                    
                    irek = int.Parse(rek);
                    
                    if (irek > 0)
                    {
                        richTextBox2.Text = "-" + irek + " " + "р.";                        
                    }
                    else if (irek < 0)
                    {
                        richTextBox2.Text = irek + " " + "р.";
                    }
                    else { }
                    
                }
                else { }
            }
            
        }

private void button1_Click(object sender, EventArgs e)
        {
            string pl = richTextBox1.Text;
            int ipl;
            ipl = int.Parse(pl);
            int itable = irek + ipl;
            string table = String.Format("{0:D}", itable);
            parts[1] = table; //Этой строчкой хотел бы поменять содержимое ячейки parts[1] в исходном строковом массиве
        }


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

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


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

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


 




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


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

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