我正在處理一個C#winForm項目,當用戶單擊我的dataGridView的特定行時顯示一個ContextMenuStrip,它允許用戶將數據輸入到toolStripTextBoxItem中...問題我'當時我通過TableLayoutPanel動態添加更多控件到我的winForm中......這導致我的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沒有按不會重新定位/對齊到我的網格的新位置,而是留在原始位置。
我該如何解決這個問題?
由於提前,
-DA
你有錯誤的標籤,隊友;你標記爲C,但這是一個C#問題。我自己不知道任何C#。 – 2013-05-09 01:21:55