私は唯一のシステムの色を表示します私自身の小さなカラーピッカーを書いているWinフォームアプリケーションを持っています。基本的にはTableLayoutPanel
の小さなパネルが追加され、背景色を設定するだけです。)
非常にシンプル:
は今、私は持つためにこのフォームを開いている:
using (frmColourWindow colourPicker = new frmColourWindow (Cursor.Position.X, Cursor.Position.Y, findingPriority))
{
colourPicker.ShowDialog();
if (!colourPicker.SelectedColor.IsEmpty)
{
pnlColor.BackColor = colourPicker._SelectedColor;
}
}
、ユーザーは以下のいずれかをクリックしたときDialogResult
を設定することによってでそれをクローズしカラーパネル。
このすべてはかなり良い作品は、私が権利を取得するために管理することができない唯一のことは、それがフォーカスを失ったときに、フォームを閉じている(例えば、ユーザーがどこかをクリックするか、入力を開始したとき)。私はDeactivate
、LostFocus
、およびLeave
イベントを見て持っていました。私は彼らに欲しいときにそれらのイベントを発生させるように見えません。たぶん私は何か明白なものを見逃していますか
でフォームを開く 'にShowDialog()'あなただけのそのフォームは、それがクローズされるまで「使用」することができます。あなたが正しく欲しいものを理解したら、 'ShowDialog()'の代わりに 'Show()'を使うと、それらのイベントは起動するはずです。 –
確かに、パネルを選択してApplicationSettingsをクリックします。ヘルプが必要な場合は、F1キーを押します。 –
@Bojan、 'Show()'を使った後、カラーピッカーの中からフォームをプログラム的に 'Close()'すると、私のカラーピッカーから選択した色をどのように得ることができますか?フォームが終了すると背面の小さなパネルがその色に設定されなければならないので、フォームは –