본문 바로가기
C#

C# TopLevel, TopMost 차이, TopMost끼리 화면 우선권

by 따봉이 2021. 12. 15.
728x90
반응형

TopLevel : True로 설정 시 부모창없는 최상단의 창으로 설정 

TopMost : True로 설정 시 다른 실행중인 프로그램 모두 포함에서 모터니상에서 최상단에 표시됨

 

TopMost 테스트

Form1, Form2를 만들고 Form1은 TopMost True로 띄우고 Form1에서 Form2를 그냥 띄운다. 

 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form2 frm2 = new Form2();
            frm2.Show();

            

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.TopMost = true;
            
        }
    }

 

form2가 form1뒤에 떴다. 

form2를 클릭해도 form1이 TopMost이기 때문에 선택은 되지만 Form1앞으로 표시가 되지 않는다. 

 

 

 

 

메모장을 띄어보았다. 

메모장 역시 form1 뒤에 표시가 된다. 

 

바탕화면에 있던 상용프로그램 S메모를 항상위에 고정해보았다. 

 

 

 

 

아까 만들었던 Form1도 TopMost= true로 항상위에 와야하는데 S메모창의 옵션을 항상위로 했더니

S메모가 TopMost되었다. 

여기서 Form1을 클릭을 해보면 Form1이 TopMost가 된다. 

 

 

 

이걸로 보았을 때 TopMost가 True인 창끼리는 서로 선택해가면서 화면에 우선권이 부여되지만

일반 창들은 항상 TopMost 창 뒤에 표시된다는 걸 알 수 있다. 

728x90
반응형

댓글