Member 10376725 Ответов: 0

Как отобразить данные ячейки DGV в текстовое поле


- я строчка кодаУ меня есть DataGridView, построенный из выбранных данных из моей базы данных. Из-за ограничений по размеру я усек 2 столбца. Когда я нажимаю на одну из ячеек в Столбцах, открывается текстовое поле, которое должно отображать полный текст в этом поле. Когда я нажимаю на ячейку, открывается текстовое поле, но текст отображается в верхней части поля, а в теле ничего нет. Если я нажму клавишу enter или пробел, то текст появится в теле поля.
Как я могу сделать так, чтобы текст появлялся в поле, когда оно открывается?
Я прикрепил подпрограмму щелчка по ячейке и подпрограмму текстового поля.

Я также пробовал инструмент ToolTip, и он работает, но есть две проблемы. Я хотел бы иметь возможность управлять внешним видом окна аналогично коду CellClick(размер окна, цвет, тип шрифта и размер) и пусть он остается активным до тех пор, пока не будет отпущен с помощью кнопки закрытия.
(Основной код прилагается)

Что я уже пробовал:

Код CellClick

Private Sub grdViewMovies_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles grdViewMovies.CellClick
        
        Dim value As Object = grdViewMovies.Rows(e.RowIndex).Cells(e.ColumnIndex).Value
        Dim colNumb As String = grdViewMovies.CurrentCell.ColumnIndex.ToString

        'Make sure only information in columns 1 or 2 is displayed.

        If colNumb = 1 or colNumb = 2 Then

            'If there is no data in the cell

            If IsDBNull(value) Then
                MessageBox.Show("NO DATA IN THIS CELL", " NOTHING HERE", MessageBoxButtons.OK, MessageBoxIcon.Information)
            ElseIf colNumb = "0" Then
                Form1.again = False
                Exit Sub
            Else         'Open sayitForm and display the text that is in the cell
                displayText = CType(value, String)
                Using sayitForm As New INFORMATION
                    sayitForm.Text = displayText
                    sayitForm.ShowDialog(Me)
                End Using
            End If
        End If
    End Sub

    Private Sub closeBtn_Click(sender As Object, e As EventArgs) Handles closeBtn.Click

    End Sub
End Class
 

Public Class INFORMATION

    Private Sub txtSayit_TextChanged(sender As Object, e As EventArgs) Handles txtSayit.TextChanged
        txtSayit.Text = SQLForm.displayText
    End Sub

End Class



Код Всплывающей Подсказки

Private Sub grdViewMovies_CellMouseEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles grdViewMovies.CellMouseEnter

        Dim myRow As Integer = e.RowIndex
        Dim myCol As Integer = e.ColumnIndex

        If myCol = 1 Or myCol = 2 And myRow > 0 Then
            Me.grdViewMovies.Rows(myRow).Cells(myCol).ToolTipText = Me.grdViewMovies.Rows(myRow).Cells(myCol).Value
        End If

    End Sub

0 Ответов