Julia Fraveau Ответов: 3

Как назвать элементом управления datagridview ячейки щелкните событие button_click появилась


Привет, ребята, я очень рад сегодня найти этом сайте я Джулия новичок в программированию на C# и программирование в целом, я в это приложение Windows, которое делает из меня три вещи в сетке .сначала я импортировать данные из базы данных, затем на clickcell случае он выполняет некоторые вычисления, основанные на данных на сотовом есть ли способ для меня, чтобы сделать все это в одну кнопку, событие click вместо того, чтобы нажать каждую клетку просто, чтобы сделать мои расчеты?
void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
   //Do something
}button1_click(object sender Args e)
{
//how do I call gridview method in here??
}

3 Ответов

Рейтинг:
22

Ekona_Pikin

Вы можете просто поместить код, который хотите выполнить, в свой собственный метод, а затем вызвать его из обоих обработчиков событий. Конечно, вам придется самостоятельно указать индекс строки в обработчике событий для события click кнопки.
Вот так ==>

private void DoMyFunction(int rowIndex)
        {

//Сделайте свой расчет здесь, хорошо:))}


private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 5 || e.ColumnIndex == 6)
            {
                DoWork(e.RowIndex);
            }
        }


private void button3_Click(object sender, EventArgs e)
     {
         int row = 0; //always specify the row here...
         DoMyFunction(row);
     }


Надеюсь, что это поможет...


Рейтинг:
1

Joan Magnet

Конечно, вы можете ссылаться на свой объект gridview:

Управления gridview1.Строк[различие].Ячейки[cell_number].Value = your_calculations.

Взгляните на методы и свойства класса DataGridView.

Класс DataGridView


Richard Deeming

Вам просто нужно создать экземпляр DataGridViewCellEventArgs класс и передать его методу:

var args = new DataGridViewCellEventArgs(theColumnIndex, theRowIndex);
dataGridView2_CellContentClick(dataGridView2, args);

Julia Fraveau

Спасибо Ричард, я скопировал код ur, var args = new DataGridViewCellEventArgs(theColumnIndex, theRowIndex);
dataGridView2_CellContentClick(dataGridView2, args);
но я получаю его крики на меня о параметрах, которые мне нужно сначала объявить theColumnIndex и theRowIndex?

Richard Deeming

Вам нужно будет заменить его theColumnIndex и theRowIndex с индексами столбцов и строк, которые вы хотите обработать.

Julia Fraveau

Еще раз спасибо за ваше время и руководство Ричард, я сделал вот так var args = new DataGridViewCellEventArgs(ColumnIndex, RowIndex);
dataGridView2_CellContentClick(dataGridView2, аргументы);columnindex и rowindex являются двумя индексами здесь но я все еще получаю errorrs, и когда я парить вокруг DataGridViewCellEventArgs я вижу (инт значение columnindex и rowindex инт)понятия не имею, почему до сих пор ,получаю ошибки

Richard Deeming

Какие ошибки вы получаете?

Julia Fraveau

использовать неинициализированные переменные ==&ГТ;значение columnindex и rowindex

Richard Deeming

Вам нужно будет назначить переменные, прежде чем использовать их.

Julia Fraveau

Вот именно, я так и сделал ,но Эрро не хотят уходить.

Richard Deeming

Если вы все еще получаете ошибку "неназначенная переменная", то вы не назначили переменную до ее использования.

Julia Fraveau

теперь я действительно сделал public int theRowIndex{get;set},public int theRowIndex{get;set} ошибки исчезли ,но когда я нажимаю кнопку, ничего не происходит, я вытаскиваю все это вместе с методом ur на кнопке

Julia Fraveau

Эй , спасибо, Ричард,я наконец-то нашел способ обойти это, используя выражение лица, спасибо за всю вашу помощь:))

Joan Magnet

Если вы импортируете данные из базы данных, вам следует использовать DataTable.

Вы можете внести изменения в поля своей базы данных, прежде чем привязывать этот datatable к вашей datagrid.

<pre>
foreach(строка DataRow в таблице yourtable.Строки)
{
// вычислите строки здесь.
}
</pre>

или вы можете добавить обработчик событий для события RowsAdded. Каждый раз, когда новая строка добавляется в вашу сетку, этот обработчик будет вызываться.

https://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.rowsadded(v=против 110).aspx

Joan Magnet

вот несколько примеров:

http://stackoverflow.com/questions/10551607/calculation-columns-in-datagridview-bounded-to-an-object

Julia Fraveau

Привет @Жанна , расчеты работают ,но каждый раз, когда мне нужно будет кликнуть климатик клетки говорят, что если есть 1000 строк ,это много, сэр Джоан, есть ли способ я могу использовать GridView в способ, проведенные выше в мой код в button_click появилась();указал выше @Ричард, считая, что я должен использовать =&ГТ; ВАР параметр args = новый DataGridViewCellEventArgs(theColumnIndex, theRowIndex);
dataGridView2_CellContentClick(dataGridView2, args);
Я получаю ошибки в параметрах .

Рейтинг:
1

Member 13323226

Привет всем моим дорогим друзьям...

использовать это...

частная btnChoose_Click недействительным(объект отправителя, EventArgs в электронной) {

MouseEventArgs b = новый MouseEventArgs(System.Окна.Формы.Кнопки мыши.Слева, 2,
Мышиное положение.X, MousePosition.Y, 0);
DataGridViewCellMouseEventArgs a = новый DataGridViewCellMouseEventArgs(0, 0,
Мышиное положение.X, MousePosition.Y, b);
dataGridView1_CellMouseDoubleClick(отправителя, );
}

наслаждаться этим...