プログラムの「WorkArea」として大きなパネルを持つ単純なプログラム(これまでのもの)を構築しました。グリッド上にグリッドを描画し、グリッド上の最も近いポイントにカーソルをスナップする機能を持っています。パネルの現在の位置を表示するウィンドウの下部にステータスバーがあります。しかし、どこにスクロールしたかにかかわらず(縦棒が上と横に対して25%で10%であるとしよう)、実際のウィンドウに関してカーソル位置が表示されます。スクロールバーを使ったパネル上のカーソル位置の取得
私はこれを処理ONMOUSEMOVEイベント持っている:私はそうで、カーソルのポイントを与え、正しい場所にそれを描画し、期待どおりに動作
private void WorkArea_MouseMove(object sender, MouseEventArgs e)
{
GridCursor = grid.GetSnapToPosition(new Point(e.X, e.Y));
toolStripStatusLabel1.Text = grid.GetSnapToPosition(new Point(e.X, e.Y)).ToString();
Refresh();
}
を。しかし、私がスクロールしても、私は同じ読みが得られます。縦と横のスクロールバーの半分をスクロールして、カーソルを左上隅に置き、0,5を読み取ることができます。これは、5000,5000のようなものにする必要があります(パネル10kで10k) 。
スクロールバーに関してパネル内の絶対位置を取得するにはどうすればよいですか?
「WorkArea」はPanelです。 'GridCursor'、' grid'、 'GetSnapToPosition'とは何ですか? 'AutoScroll'はオンですか? – TaW