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

Поиск:

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


Шустрый
*


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

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



Такая ситуация: Как сделать так, чтобы при выделении записей в DataGridView при нажатии на правую кнопку мыши выходило- "копировать", "вставить", далее при нажатии "копировать" данные копировались в буфер, далее всав на новую строку в  DataGridView и нажав на "Вставить" данные добавлялись в DataGridView, заранее спасибо
PM MAIL   Вверх
thomas
Дата 14.5.2008, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 35
Всего: 65



tatbesidovska
Используем контекстное меню.  smile 


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
tatbesidovska
Дата 14.5.2008, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



thomas, Вы знаете, я новичок в освоении этого материала, а не могли ли Вы подробнее мне рассказать про контекстное меню. Спасибо.
PM MAIL   Вверх
tatbesidovska
Дата 14.5.2008, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Подскажите пожалуйста, как написать обработку осбытия-"Копировать" и "Вставить" в DataGridView. Например, выделяем строку, копируем и вставляем данные в новую строку, заранее спасибо.
PM MAIL   Вверх
tatbesidovska
Дата 15.5.2008, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ну кто-нить подскажите!!!! ОООООООООООчень надо
PM MAIL   Вверх
thomas
Дата 15.5.2008, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 35
Всего: 65



tatbesidovska
Для копирования данных из грида нужно создавать обьект DataRow и присваивать значения полям из ячеек выделенной строки в гриде.
Вставка происходит наоборот, имея обьект DataRow добавляете его в DataSource грида и обновляете грид. Или заменяете выделенную в гриде строку своей. Опять же через DataSource грида.

Кодировать по обстакановке, исходя из того что вы имееете.


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
tatbesidovska
  Дата 20.5.2008, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



а код можно????
PM MAIL   Вверх
Chef
Дата 21.5.2008, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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




Получаем список выделеных записей
Код

DataGridViewRow bufferRow = grid.SelectedRows[0];


Если у тебя стоит MultiSelect = false, то получишь одну запись (если она выделена). Если True то тогда избегай этого, проверяй grid.SelectedRows.Count (количество выделеных записей)

Потом в нужном месте, куда тебе нужно вставить данные, также получаем выделеную строку 

Код

DataGridViewRow row = grid.SelectedRows[0];


Сразу присвоить нельзя, потому что только для чтения. Получили присвоили и все.
Код

row = bufferRow;


Если работаешь с данными из DataSet то нужно данные там изменять а не в гриде

Вроде так, мож в чем то ошибся  smile 
--------------------
Разговоры об IT
PM MAIL WWW   Вверх
Chef
Дата 22.5.2008, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Мышью щелкать и копировать..... Вот накидал наверно ты етого хотел
Создаешь событие для грида

Код

dtGridView.CellMouseDown += new DataGridViewCellMouseEventHandler(SelectFullRow);


Вот код события

Код

private void SelectFullRow(object sender, DataGridViewCellMouseEventArgs e)
        {
            //throw new Exception("The method or operation is not implemented.");
            if (e.Button == MouseButtons.Right)
                if ((e.ColumnIndex == -1) && (e.RowIndex > -1))
                {
                    DataGridView dt = sender as DataGridView;
                    foreach (DataGridViewRow rw in dt.SelectedRows)
                    {
                        rw.Selected = false;
                    }
                    dt.Rows[e.RowIndex].Selected = true;
                    menuTable.Show(MousePosition.X, MousePosition.Y);
                }
        }


Сдесь в коде если ты щелкаешь на крайней ячейке (ну которая серая  smile ) , то выделяеться все строка, выходит меню, где ты и выбираешь копировать, вставить или еще что.

Этот кусок убирает все выделеные до этого строки, навсякий случай, а то бывает.......
Код

DataGridView dt = sender as DataGridView;
 foreach (DataGridViewRow rw in dt.SelectedRows)
 {
      rw.Selected = false;
 }


Это сообщение отредактировал(а) Chef - 22.5.2008, 17:30
--------------------
Разговоры об IT
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

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

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


 




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


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

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