ユーザーが dataGridView の特定の行をクリックすると ContextMenuStrip を表示する C# winForm プロジェクトに取り組んでいます。これにより、ユーザーは toolStripTextBoxItem にデータを入力できるようになります。 TableLayoutPanel を介して動的に winForm に...これにより、dataGridView が再配置されますが、ContextMenuStrip は以前の場所に「スタック」しています。ContextMenuStrip を dataGridView にアタッチして、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