Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/26: Рейтинг темы: голосов - 26, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 31

BindingSource: как сделать текущей выбранную строку

20.03.2012, 11:11. Показов 5355. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Друзья, возникла следующая проблема: я использую
C#
1
 BindingSource BS = new BindingSource();
для того чтобы реализовать с помощью кнопок проход по строкам таблицы. Делаю это следующим образом:
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
        private void Updater()
        {
            dgAuthor.ClearSelection();
            //dgAuthor.Rows[BS.Position].Selected = true;
            //dgAuthor.CurrentRow = dgAuthor.Rows[BS.Position];
            //dgAuthor.CurrentCell = dgAuthor.Rows[BS.Position];
            //dgAuthor.Cursor=dgAuthor.Rows[BS.Position];
            //dgAuthor.CurrentCell = dgAuthor.Rows[BS.Position].Cells;
            dgAuthor.CurrentCell.Selected=dgAuthor.Rows[BS.Position].Selected=true;
            //dgAuthor.CurrentCell.RowIndex = dgAuthor.Rows[BS.Position].Index;
            records();
        }
 
        private void records()
        {
            author_lable_bind.Text = "Record " + BS.Position + " of " + BS.Count;
        }
        private void btn_author_last_Click(object sender, EventArgs e)
        {
            BS.ResetCurrentItem();
            BS.MoveLast();
            
            Updater();
        }
 
        private void btn_author_first_Click(object sender, EventArgs e)
        {
            BS.ResetCurrentItem();
            BS.MoveFirst();
            //BS.ResetCurrentItem();
            Updater();
        }
 
        private void btn_author_prev_Click(object sender, EventArgs e)
        {
            BS.ResetCurrentItem();
            BS.MovePrevious();
            //BS.ResetCurrentItem();
            Updater();
        }
 
        private void btn_author_next_Click(object sender, EventArgs e)
        {
            BS.ResetCurrentItem();
            BS.MoveNext();
            //BS.ResetCurrentItem();
            Updater();
        }
Соответственно, я хочу чтобы выделенная строка была у меня стала текущей, то есть стала CurrentRow и я нажав кнопочку "модифицировать" открывал именно выделенную строку. Этот код визуально выделяет строки, но текущей строку не делает, и перемещаясь по строкам вот таким способом я действительно меняю положение выделенной строки, но текущей всегда остается первая строка. Если же я стандартным образом - мышью выделяю строку (любую) то все работает и при нажатии "модифицировать" я получаю для модификации выделенную строку. То есть я делаю вывод что мой способ выделения строк выделяет строки, но не делает ее текущей, как делает это нажатие мыши.
Вопрос: как мне сделать строку текущей?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.03.2012, 11:11
Ответы с готовыми решениями:

Как удалить выбранную строку из БД?
таблица называется автомобили - (код(ключ),марка,модель,год, пробег, цена) как удалить выбранную строку в datagridview из базы данных...

Как удалить выбранную строку из datagridview и бд
Помогите разобраться с кодом private void buttondelete_Click(object sender, EventArgs e) { if...

SQL Compact Как удалить выбранную строку
Как удалить выбранную строку в таблице? Язык C#, база данных SQL Compact. Film - название таблицы, ФильмId - первая строка таблицы. Вот мое...

10
 Аватар для _katon_
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
20.03.2012, 13:11
Может быть поможет:
C#
1
this.dataGridView1.CurrentCell = dataGridView1[colindex, rowindex];
1
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 31
20.03.2012, 15:05  [ТС]
нет, ваш способ мне не подходит, потому что я использую
C#
1
dgAuthor.CurrentCell.Selected=dgAuthor.Rows[BS.Position].Selected=true;
а если я по вашему методу буду выделять, то где мне взять индексы колонки и ряда? спецальных методов их нахождения у меня нет
0
124 / 106 / 7
Регистрация: 14.02.2010
Сообщений: 263
20.03.2012, 15:11
Цитата Сообщение от hax32 Посмотреть сообщение
Соответственно, я хочу чтобы выделенная строка была у меня стала текущей, то есть стала CurrentRow и я нажав кнопочку "модифицировать" открывал именно выделенную строку. Этот код визуально выделяет строки, но текущей строку не делает, и перемещаясь по строкам вот таким способом я действительно меняю положение выделенной строки, но текущей всегда остается первая строка. Если же я стандартным образом - мышью выделяю строку (любую) то все работает и при нажатии "модифицировать" я получаю для модификации выделенную строку. То есть я делаю вывод что мой способ выделения строк выделяет строки, но не делает ее текущей, как делает это нажатие мыши.
То, что здесь написано никак не согласуется с выложенным кодом. Выкладывайте проект.
0
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 31
20.03.2012, 17:46  [ТС]
Да все, спасибо вам большое
вот то что заработало
C#
1
dgAuthor.CurrentCell = dgAuthor[0, BS.Position];
и все)
ну и катону благодарность +1
0
11 / 11 / 8
Регистрация: 18.09.2012
Сообщений: 514
10.02.2014, 23:21
пишет что Текущую ячейку нельзя сделать невидимой. как быть?
вроде все правильно делаю вот мой код

C#
1
2
3
Form9 fm9 = new Form9();
            fm9.ShowDialog();
            dataGridView1.CurrentCell = dataGridView1[0, справочникДисциплинBindingSource.Position];
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
11.02.2014, 06:07
Цитата Сообщение от pirat2k Посмотреть сообщение
пишет что Текущую ячейку нельзя сделать невидимой
А вы уверены, что ячейка dataGridView1[0, справочникДисциплинBindingSource.Positio n] является видимой?
0
11 / 11 / 8
Регистрация: 18.09.2012
Сообщений: 514
11.02.2014, 20:51
Использую такую запись чтобы чтобы заполнить значение из записи в TextBox на другой форме
C#
1
2
3
Form9 fm9 = new Form9();
fm9.textBox1.Text = dataGridView1[1, справочникДисциплинBindingSource.Position].Value.ToString() ;
fm9.ShowDialog();
теперь когда я изменяю значение из TextBox и нажимаю на кнопку ОК запись не обновляется. Использую такой способ сохранения
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 if (textBox1.TextLength == 0)
            {
                System.Windows.Forms.MessageBox.Show("Поле ввода пустое!", "Ошибка ввода", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning);
                textBox1.Focus();
            }
            else
            {
                
                справочникДисциплинBindingSource.EndEdit();
                this.справочник_дисциплинTableAdapter.Update(this.aBITURENTS_BDDataSet.Справочник_дисциплин);
                this.справочник_дисциплинTableAdapter.Fill(this.aBITURENTS_BDDataSet.Справочник_дисциплин);
                Close();
            }
        }
Как мне обновить запись???
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
12.02.2014, 04:45
Цитата Сообщение от pirat2k Посмотреть сообщение
Использую такую запись чтобы чтобы заполнить значение из записи в TextBox на другой форме Код C#1
2
3
Form9 fm9 = new Form9();
fm9.textBox1.Text = dataGridView1[1, справочникДисциплинBindingSource.Positio n].Value.ToString() ;
fm9.ShowDialog();теперь когда я изменяю значение из TextBox и нажимаю на кнопку ОК запись не обновляется. Использую такой способ сохранения Код C#1
2
3
4
5
6
7
8
9
10
11
12
13
14
if (textBox1.TextLength == 0)
* * * * * * {
* * * * * * * * System.Windows.Forms.MessageBox.Show("По ле ввода пустое!", "Ошибка ввода", System.Windows.Forms.MessageBoxButtons.O K, System.Windows.Forms.MessageBoxIcon.Warn ing);
* * * * * * * * textBox1.Focus();
* * * * * * }
* * * * * * else
* * * * * * {
справочникДисциплинBindingSource.EndEdit ();
* * * * * * * * this.справочник_дисциплинTableAdapter.Up date(this.aBITURENTS_BDDataSet.Справочни к_дисциплин);
* * * * * * * * this.справочник_дисциплинTableAdapter.Fi ll(this.aBITURENTS_BDDataSet.Справочник_ дисциплин);
* * * * * * * * Close();
* * * * * * }
* * * * }
О_о Я в шоке от логики вашей программы. Такое ощущение, что данные код появился в результате бестолкового копипаста. Среди всего приведенного вами кода в какой строке значение из TextBox передается в DataGridView?
Цитата Сообщение от pirat2k Посмотреть сообщение
Как мне обновить запись???
C#
1
2
if(fm9.ShowDialog() == DialogResult.OK)
    dataGridView1[1, справочникДисциплинBindingSource.Position].Value = fm9.TextBox1.Text;
0
11 / 11 / 8
Регистрация: 18.09.2012
Сообщений: 514
12.02.2014, 11:21
Цитата Сообщение от kodv Посмотреть сообщение
О_о Я в шоке от логики вашей программы. Такое ощущение, что данные код появился в результате бестолкового копипаста. Среди всего приведенного вами кода в какой строке значение из TextBox передается в DataGridView?

C#
1
2
if(fm9.ShowDialog() == DialogResult.OK)
    dataGridView1[1, справочникДисциплинBindingSource.Position].Value = fm9.TextBox1.Text;
все равно не обновляется(
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
12.02.2014, 11:56
pirat2k, воспринимайте это как направление, в котором нужно двигаться. Смысл в том, что вы в ваш диалог передаете данные, там пользователь их меняет, а потом вы эти измененные данные считываете обратно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.02.2014, 11:56
Помогаю со студенческими работами здесь

DataGridView: Как получить выбранную пользователем строку
Юзаю DataGridViwe, для которого осмысленно установлен ReadOnly в true. Данные в гриде модифицируются с помощью трех кнопко:...

Как сделать объект класса BindingSource видимым ?
private void Form3_Load(object sender, EventArgs e) { BindingSource BindingSourse_uchastnik = new BindingSource(ds,...

Удалить выбранную строку в datagridview из бд
в datagridview выведена таблица из базы данных с помощью bindingsource. Как сделать удаление через кнопку выделенной строки в...

Поместить в файл выбранную строку
Добрый вечер! пишу программу с базой данных Sqlite. Суть проблемы такая: нужно скопировать выделенную строку, и записать эту строку в...

Перенести выбранную строку в другой dataGridview
Здравствуйте. Требуется выделенную строку из одного datagrid перенести в другой. private void button1_Click(object sender,...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru