내 응용 프로그램에 두 개의 양식이 있습니다 MainForm
및 HexCompare
입니다. 내 응용 프로그램을 다른 창에서 클릭하면 두 양식 중 하나를 다시 클릭하면 그 중 하나만 앞으로옵니다. 두 가지 양식 중 하나를 클릭하면 응용 프로그램의 모든 열린 양식의 맨 위에 모두 표시됩니다. 지금은 (창 내 스택의 상단을 얻기 위해 개별적으로 각 양식을 선택해야하고이 때문에 HexCompare
길 작업이의 ShowInTaskbar
세트하나의 양식을 선택하면 프로그램과 관련된 모든 양식이 앞으로 오게됩니다.
false
에 대한 좋은 예를 가지고 있다는 사실에 매우 짜증나는 일 수있다 가장 원하는 찾기 대화 상자의 작동 방식을 원합니다. 찾기 대화 상자를 클릭하면 다른 응용 프로그램에 의해 숨겨진 경우 주 양식이 앞으로 나오고 기본 양식을 클릭하면 찾기 대화 상자가 앞으로옵니다. 다른 응용 프로그램에서 숨겨진. MainForm
가 호출되는 방법
.
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
HexCompare
이
private void lstCaputres_SelectedIndexChanged(object sender, EventArgs e)
{
var selectedItem = (Tuple<DateTime, byte[]>)lstCaputres.SelectedItem;
if (hexCompare == null || hexCompare.IsDisposed)
{
hexCompare = new HexCompare(selectedItem.Item2);
hexCompare.Show();
}
else
hexCompare.ChangeValue(selectedItem.Item2);
}
편집 호출 방법 :
Parent
의 HexCompare
의 값이 Null
것 같다입니다. 어떻게 든 그것을 MainForm
으로 설정할 수 있다면 내 문제를 해결할 수 있을까요? 그렇다면 어떻게 설정해야합니까?
EDIT2 :
내가 가진 반 해결 티그의 솔루션을 사용하여하지만 난 여전히 관심이 더 나은 솔루션이있는 경우 각 양식은 전면에 데려으로 점멸됩니다. 나에게//In MainForm.cs
private void MainForm_Activated(object sender, EventArgs e)
{
hexCompare.BringToFront();
this.BringToFront();
}
//in HexCompare.cs
private void HexCompare_Activated(object sender, EventArgs e)
{
parent.BringToFront();
this.BringToFront();
}
'ShowWithoutActivation'이란 무엇입니까? 나는 어디에서든지 사용되는 것을 보지 못합니다. 그러나 당신의 솔루션은 플리커를 제거하는데, BringToFront보다 훨씬 낫습니다.때때로 ListBox에서 선택한 항목이 선택 취소 된 다음 매우 빠르게 선택되지만 다른 항목은 완벽하지 않습니다. –
미안하지만, 내 복사/붙여 넣기에 열중 해있는 것 같습니다. 나는 그것을 편집 할 것이다. 도움이 되니 기쁜 데, 그것은 우리에게 1 톤을 도왔습니다! –