Получите текст от выбранных ячеек DataGridView

Измените ваше TimerCouldNotBeStarted событие на сервис, который вы добавили в DI. Затем разрешите службу в конструкторе Hubs и используйте ее в своих методах.

public class TimerHub : Hub
{
    private readonly TimeService _timer;

    public TimerHub(TimerService timer)
    {
        _timer = timer;
    }

    Task TimerStatusUpdate(string message)
    {
        switch (message)
        {
            case "Timer could not be started.":
                _timer.OnTimerCouldNotBeStarted(EventArgs.Empty); // Raise event
                break;
        }

        return Clients.All.SendAsync("EditionStatusUpdate", message);
    }
}
7
задан John Saunders 4 December 2012 в 03:21
поделиться

5 ответов

DataGridView.SelectedCells набор ячеек, таким образом, это не столь просто как вызов ToString() на нем. Необходимо циклично выполниться через каждую ячейку в наборе и получить значение каждой ячейки вместо этого.

Следующее создаст разграниченный запятой список значений всех выбранных ячеек.

C#

TextBox1.Text = "";
bool FirstValue = true;
foreach(DataGridViewCell cell in DataGridView1.SelectedCells)
{
    if(!FirstValue)
    {
        TextBox1.Text += ", ";
    }
    TextBox1.Text += cell.Value.ToString();
    FirstValue = false;
}

VB.NET (Переведенный из кода выше)

TextBox1.Text = ""
Dim FirstValue As Boolean =  True 
Dim cell As DataGridViewCell
For Each cell In DataGridView1.SelectedCells
    If Not FirstValue Then
        TextBox1.Text += ", "
    End If
    TextBox1.Text += cell.Value.ToString()
    FirstValue = False
Next
8
ответ дан 6 December 2019 в 08:45
поделиться

Или в случае, если Вам просто нужно значение первого seleted, продают (или всего одна выбранная ячейка, если Вы выбраны),

TextBox1.Text = SelectedCells[0].Value.ToString();
0
ответ дан 6 December 2019 в 08:45
поделиться

В этом конкретном случае ToString () возвратит название объекта, возвращенного Свойством SelectedCell. (набор в настоящее время выбранных ячеек).

Это поведение происходит, когда объект не имеет никакого определенного implenetation для ToString () методы.

в нашем случае все, что необходимо сделать, должно выполнить итерации набора ячеек и накапливать его значения до строки. затем продвиньте эту строку к TextBox.

взгляните здесь, как реализовать повторение:

MSDN

0
ответ дан 6 December 2019 в 08:45
поделиться

Попробуйте следующее:

Dim i = Datagridview1.currentrow.index
textbox1.text = datagridview1.item(columnindex, i).value

Это должно сработать :)

6
ответ дан 6 December 2019 в 08:45
поделиться

Лучшее из обоих миров .....

Private Sub tsbSendNewsLetter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tsbSendNewsLetter.Click
        Dim tmpstr As String = ""
        Dim cnt As Integer = 0
        Dim virgin As Boolean = True
        For cnt = 0 To (dgvDetails.Rows.Count - 1)
            If Not dgvContacts.Rows(cnt).Cells(9).Value.ToString() Is Nothing Then
                If Not dgvContacts.Rows(cnt).Cells(9).Value.ToString().Length = 0 Then
                    If Not virgin Then
                        tmpstr += ", "
                    End If
                    tmpstr += dgvContacts.Rows(cnt).Cells(9).Value.ToString()
                    virgin = False
                    'MsgBox(tmpstr)
                End If
            End If
        Next
        Dim email As New qkuantusMailer()
        email.txtMailTo.Text = tmpstr
        email.Show()
    End Sub
0
ответ дан 6 December 2019 в 08:45
поделиться
Другие вопросы по тегам:

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