Когда я щелкаю другую ячейку с другим значением, задний цвет становится черным в текстовом поле DataGridView - PullRequest
6 голосов
/ 30 января 2012

Я сделал код для текстового поля в DataGridView с обработчиком событий.

Проблема заключается в том, что, когда я щелкаю другую ячейку с другим значением, задний цвет ячейки становится черным.

например: у меня есть эти данные в DataGridView1 10002 20003 2000

, когда я нажимаю на 1000, я пошел хорошо.после этого я нажимаю 2000, задний цвет для текущей ячейки черный.Но после этого, если я нажму на другой 2000, задний цвет снова станет белым.

Таким образом, если значение в выделенной ячейке будет изменено, то задний цвет станет черным.

Кто-нибудь может помочь мне решить эту проблему?

err Это код для текстового поля.

    private void dgvSJ_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
    {
        if (dgvSJ.CurrentCell.ColumnIndex == 10)
        {
            TextBox tx = e.Control as TextBox;              
            tx.TextChanged += new EventHandler(tx_TextChanging);
        }
    }

    void tx_TextChanging(object sender, EventArgs e)
    {
        rowIndexCell = dgvSJ.CurrentRow.Index;
        if (dgvSJ.Rows[rowIndexCell].Cells[10].EditedFormattedValue != null && dgvSJ.CurrentRow.Cells[10].EditedFormattedValue.ToString() != "")
        {
            dgvSJ.CurrentRow.Cells[10].Value = string.Format(GlobalVar.PriceFormat, Convert.ToDouble(dgvSJ.CurrentRow.Cells[10].EditedFormattedValue));   ![enter image description here][1]            

        }
    }

Ответы [ 2 ]

0 голосов
/ 12 июня 2012

Используйте richTextBox вместо стандартного текстового поля, поскольку оно позволяет изменить цвет выделения для richTextBox (в отличие от ячейки, как вы делали выше.)

private void dgvSJ_EditingControlShowing(object sender,   DataGridViewEditingControlShowingEventArgs e)
{
    if (dgvSJ.CurrentCell.ColumnIndex == 10)
    {
        RichTextBox rtx = e.Control as RichTextBox ; 
        rtx.SelectionColor = Color.CornflowerBlue;
        rtx.TextChanged += new EventHandler(tx_TextChanging);
    }
}            
0 голосов
/ 18 февраля 2012

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

XAML

<TextBox Height="23" HorizontalAlignment="Left" Margin="173,165,0,0" Name="textBox1" VerticalAlignment="Top" Width="120" Background="Red" />

C #

var tbox = new TextBox(){Background = color};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...