Текст кнопки в сетке не меняет форму окнаC#

Место общения программистов C#
Ответить
Anonymous
 Текст кнопки в сетке не меняет форму окна

Сообщение Anonymous »

Я создал представление сетки с помощью кода и хочу изменить текст кнопки для выбранной строки с + на -, когда пользователь нажимает на нее. Я проверил несколько кодов ниже, код, который я сейчас использую, и пытаюсь изменить текст с + на - и наоборот ниже ParentGrid_CellContentClick
private void InitializeParentGrid()
{
parentGrid = new DataGridView
{
Dock = DockStyle.Fill,
AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill,
RowHeadersVisible = false,
AllowUserToAddRows = false,
ColumnHeadersVisible = false // Hide column headers
};

// Add Expand button column
var expandColumn = new DataGridViewButtonColumn
{
Name = "Expand",
HeaderText = "",
Text = "+",
UseColumnTextForButtonValue = true,
Width = 30, // Set a small width
AutoSizeMode = DataGridViewAutoSizeColumnMode.None,

};
expandColumn.UseColumnTextForButtonValue = true;
parentGrid.Columns.Add(expandColumn);

// Add Year column
var yearColumn = new DataGridViewTextBoxColumn
{
Name = "Year",
HeaderText = "Year",
DataPropertyName = "Year"
};
parentGrid.Columns.Add(yearColumn);

// Add Parent Grid to GroupBox1
groupBox1.Controls.Add(parentGrid);

// Parent grid events
parentGrid.CellContentClick += ParentGrid_CellContentClick;
}

И здесь я меняю значение ячейки сетки + на – после клика
private void ParentGrid_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex < 0) return;

if (e.ColumnIndex == 0)
{
var buttonCell = (DataGridViewButtonCell)parentGrid.Rows[e.RowIndex].Cells[0];

if (expandedRowIndex == e.RowIndex)
{
// Collapse if already expanded
RemoveChildGrid();
expandedRowIndex = -1;

// Change the button text back to "+"
buttonCell.Value = "+"; // Change button text for the clicked row
}
else
{
// Collapse any existing child grid first
RemoveChildGrid();

// Expand new child grid
expandedRowIndex = e.RowIndex;
AddChildGrid(e.RowIndex);

// Change the button text to "-"
buttonCell.Value = "-"; // Change button text for the clicked row
}

// Force the DataGridView to redraw this specific cell
parentGrid.InvalidateCell(buttonCell);
}
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... ndows-form
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

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

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»