datagridview を含むフォームがあります。ユーザーが行をクリックすると、行のすぐ下に小さなパネルが表示され、いくつかのボタンが表示されます。以下のコードでは、すべてが期待どおりに機能しています。
private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
rowSelected = e.RowIndex;
columnSelected = e.ColumnIndex;
if (e.RowIndex == -1) return;
var cellRectangle = dataGridView1.PointToScreen(
dataGridView1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false).Location);
panel_EditButtons.Location = new Point(cellRectangle.X + 50, cellRectangle.Y);
panel_EditButtons.Show();
}
ユーザーが行をクリックしたときに、パネルを表示するのに十分なスペースがないときに、パネルが画面外に表示されないようにする方法を教えてください。私が添付した2つの画像を見てください:
通常表示(パネルを表示する十分なスペースがある場合、パネルは正しく表示されます)
行の右側をクリックすると(パネルを表示するのに十分なスペースがなく、パネルが画面外に表示されます)
行の右側をクリックしても十分なスペースがないため、パネルの位置が画面の幅に制限されている場合でも、パネル全体を表示するにはどうすればよいですか?