1

フォームに panel1 があり、visible プロパティをpanel1.Visible=false;に設定し、画面をクリックしたときにこのパネルを表示したいと考えています。

現在のマウスの位置を取得し、panel1左上隅がマウス カーソルと同じ位置にある必要がある場所を表示する必要があります。

初心者で申し訳ありませんが、私はそれを行う方法に本当にこだわりました。

私が試したコード:

 private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
 {
     panel1.Location = e.Location;
     panel1.Show();
 }
4

2 に答える 2

1

これがあなたのタスクへのガイドになるかもしれません.andメソッドを使用.PointToScreenしてください..GetCellDisplayRectangle

    private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
    {
        if (e.ColumnIndex == -1) return;
        var cellRectangle = dataGridView1.PointToScreen(
            dataGridView1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false).Location);
        panel1.Location = new Point(cellRectangle.X + 50, cellRectangle.Y - 175);
        panel1.Show();
    }
于 2013-02-14T13:59:50.137 に答える
0

あなたの問題を認識できる限り、PointToScreen関数を使用する必要があります-詳細はこちら

于 2013-02-14T13:21:48.427 に答える