私はいくつかの常時オントーストトーストをフォームとして作成しています。開いたときに開いているときに他のフォームからフォーカスを取り除きたいと思います。これどうやってするの?フォーカスを持たないC#でフォームを開く
おかげ
私はいくつかの常時オントーストトーストをフォームとして作成しています。開いたときに開いているときに他のフォームからフォーカスを取り除きたいと思います。これどうやってするの?フォーカスを持たないC#でフォームを開く
おかげ
protected override bool ShowWithoutActivation
{
get
{
return true;
}
}
オーバーライドフォームのコードでこのプロパティと、それはあなたのためのトリックを行う必要があります。
フォームがTopMostプロパティをtrueに設定し、このオーバーライドを最上位フォームで使用し、CreateParamsをオーバーライドし、ExStyleでWS_EX_TOPMOSTを設定する必要がある場合は、これは機能しません。 –
アダロンの&アロンの上記の情報を使用して数分かかりましたが、ついに私のために働くようになりました。私がしなければならないことの1つは、フォームのTop Mostプロパティがfalseに設定されていることを確認することでした。ここで私が使用したコードが...ある
protected override bool ShowWithoutActivation { get { return true; } }
protected override CreateParams CreateParams
{
get
{
//make sure Top Most property on form is set to false
//otherwise this doesn't work
int WS_EX_TOPMOST = 0x00000008;
CreateParams cp = base.CreateParams;
cp.ExStyle |= WS_EX_TOPMOST;
return cp;
}
}
の可能性のある重複した[フォーカスを盗むせずにフォームを表示?](http://stackoverflow.com/questions/156046/show-a-form-without-stealing-フォーカス) – Breeze