Я работаю над проектом C# winForm, который отображает ContextMenuStrip, когда пользователь нажимает на определенную строку моего dataGridView, он позволяет пользователю вводить данные в инструмент toolStripTextBoxItem ... проблема I ' m есть, когда я добавляю больше элементов управления к моему winForm динамически через TableLayoutPanel ... это заставляет мой dataGridView повторно позиционировать, но мой ContextMenuStrip «застрял» в предыдущем местоположении. Как прикрепить мой ContextMenuStrip к моему DataGridView, чтобы он снова позиционировал себя с новой позицией моего dataGridView?Переустановка ContextMenuStrip в DataGridView
Вот пример того, что у меня есть.
ContextMenuStrip ctxtMnuStrp = ContextMenuStrip();
ctxtMnuStrp.Closing += ctxtMnuStrp_Closing;
ToolStripTextBox txtBox = new ToolStripTextBox();
ctxtMnuStrp.Items.Add(txtBox);
DataGridView grid = new DataGridView();
grid.MouseClick += grid_CellClick;
private void grid_CellClick(object sender, DataGridViewCellEventArgs e)
{
Rectangle rect = grid.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false);
ctxtMnuStrp.Show(grid.PointToScreen(new Point(rect.Left, rect.Bottom));
}
private void ctxtMnuStrp_Closing(object sender, ToolStripDropDownClosingEventArgs e)
{
if (e.CloseReason == ToolStripDropDownCloseReason.ItemClicked ||
e.CloseReason == ToolStripDropDownCloseReason.AppFocusChange)
e.Cancel = true;
}
Это прекрасно работает, насколько изначально позиционирует свою ContextMenuStrip и держать его открытым, пока пользователь взаимодействует с моей ContextMenuStrip ... но когда другой DataGridView это добавить к моей Winform это вызывает у меня сетку, чтобы изменить и мой ContextMenuStrip Безразлично 't переместить/выровнять себя к новому местоположению моей сетки и оставить висящим в его исходном положении.
Как исправить это?
Спасибо заранее,
-DA
У вас неправильный тег, mate; вы помечены для C, но это вопрос C#. Я сам не знаю ни одного C#. –