Щелкните правой кнопкой для выбора datagridview строки

Я бы сделал это с помощью того, что фреймворк уже предоставляет:

1) Сначала сгенерируйте класс команд:

php artisan make:command TestClean

Это сгенерирует класс команд в App \ Console \ Commands [ 118]

Затем внутри метода handle этого класса команд напишите:

@unlink('/var/www/html/test.html');

Дайте вашей команде имя и описание и выполните:

php artisan list

Просто для подтверждения, что ваша команда в списке.

2) В свой контроллер импортируйте Artisan фасад.

use Artisan;

3) Затем в своем контроллере напишите следующее:

Artisan::call('test:clean');

Пожалуйста, обратитесь к документации для дальнейшего использования: https://laravel.com/docs/5.7/artisan # генераторных-команда

9
задан Jeffrey A. Reyes 6 October 2008 в 05:58
поделиться

6 ответов

Разделите на подклассы DataGridView и создайте a MouseDown событие для сетки,


private void SubClassedGridView_MouseDown(object sender, MouseEventArgs e)
{
    // Sets is so the right-mousedown will select a cell
    DataGridView.HitTestInfo hti = this.HitTest(e.X, e.Y);
    // Clear all the previously selected rows
    this.ClearSelection();

    // Set as selected
    this.Rows[hti.RowIndex].Selected = true;
}
3
ответ дан 4 December 2019 в 06:14
поделиться

Можно использовать код JvR в Событии mouseDown DataGridView.

0
ответ дан 4 December 2019 в 06:14
поделиться
    // Clear all the previously selected rows
    foreach (DataGridViewRow row in yourDataGridView.Rows)
    {
      row.Selected = false;
    }

    // Get the selected Row
    DataGridView.HitTestInfo info = yourDataGridView.HitTest( e.X, e.Y );

    // Set as selected
    yourDataGridView.Rows[info.RowIndex].Selected = true;
15
ответ дан 4 December 2019 в 06:14
поделиться

прохладная вещь, добавляет меню при том щелчке правой кнопкой, например, с опцией как "Информация о клиенте представления", "проверяют последние счета", "Добавьте запись в журнале к этому клиенту", и т.д.

просто необходимо добавить объект ContextMenuStrip, добавить, что записи меню, и в свойствах DataGridView просто выбирают ContextMenuStrip его.

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

помните необходимость в коде JvR для получения то, в чем строка была пользователем, затем захватите ячейку, которая содержит Клиентский идентификатор, например, и передайте ту информацию.

надежда это помогает улучшению Вашего приложения

http://img135.imageshack.us/img135/5246/picture1ku5.png

http://img72.imageshack.us/img72/6038/picture2lb8.png

5
ответ дан 4 December 2019 в 06:14
поделиться

Сделать так, чтобы она работала так же, как левая кнопка мыши? например,

private void dataGridView_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
    if (e.Button == MouseButtons.Right)
    {
        dataGridView.CurrentCell = dataGridView[e.ColumnIndex, e.RowIndex];
    }
}
19
ответ дан 4 December 2019 в 06:14
поделиться

Вы должны сделать две вещи:

  1. Очистить все строки и выбрать текущую. Я просматриваю все строки в цикле и использую Bool Expression i = e.RowIndex для этого

  2. . Если вы выполнили шаг 1, у вас все еще есть большая ошибка:
    DataGridView1.CurrentRow не возвращает ранее выбранную строку (что довольно опасно). Поскольку CurrentRow доступен только для чтения, вам необходимо выполнить

    Me.CurrentCell = Me.Item (e.ColumnIndex, e.RowIndex)

     Protected Overrides Sub OnCellMouseDown (
     ByVal e как System.Windows.Forms.DataGridViewCellMouseEventArgs)
    
     MyBase.OnCellMouseDown (e)
    
     Выберите Case e.Button
     Корпус Windows.Forms.MouseButtons.Right
     Если Me.Rows (e.RowIndex) .Selected = False, то
     Для i As Integer = 0 To Me.RowCount - 1
     SetSelectedRowCore (я, я = e.RowIndex)
     следующий
     Конец, если
    
     Me.CurrentCell = Me.Item (e.ColumnIndex, e.RowIndex)
     Конец Выбрать
    
    Конец подписки
    
0
ответ дан 4 December 2019 в 06:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: