2014-12-06 2 views
-1

저는 채팅 프로그램을 만들고 chatbox에 whatsapp 종류의 스타일 메시지 레이아웃을 원합니다. 그것을하는 나의 방법 (아마 최고가 아님)은 그 안에 파란색 배경 그림이있는 그림 상자를 동적으로 만들고 레이블을 추가하여 그림 상자를 부모로 만든 다음 그림 상자 위에 메시지를 겹쳐서 표시합니다. 내가있는 PictureBox에게 라벨의 부모를 만들고 있어요 것을동적 레이블 부모가 작동하지 않습니다.

private void CreateChatBox(int height, string message) 
    { 
     PictureBox pb = new PictureBox(); 
     Label pbl = new Label(); 
     pb.Name = height.ToString(); 
     pbl.Text = message; 
     pbl.Name = height.ToString(); 
     pb.Image = LocalChat.Properties.Resources.ChatBox_Test; 
     pb.SizeMode = PictureBoxSizeMode.StretchImage; 

     // set picturebox possitions and margins 
     pb.Left = 15; 
     pb.Top = 100; 
     pb.Width = 250; 
     pb.Height = 75; 
     tabPage.Controls.Add(pb); 

     //set label positions and margins 
     pbl.Parent = pb; 
     pbl.AutoSize = true; 
     pbl.Width = 200; 
     pbl.BackColor = Color.Transparent; 
     pbl.Location = new Point(1, 1); 
     // Add button click event Handler and add buttons and lables to the panel 

     tabPage.Controls.Add(pbl); 
    } 

내 문제는, 아직 레이블은 단지 내부 양식의 맨 왼쪽에 앉아되지 않습니다 내가 코드의이 비트를 사용하고 있습니다 내가 원하는대로 picturebox. 부모님이해야 할 일을 못 내고 있습니까? 또는 내 라벨을 그림 상자 안에 갇히게하려면 어떻게해야합니까? 다시 때, 당신은 TabPage에 부모를 설정하고있는 PictureBox를에 라벨의 부모를 설정 한 후 때문에

+0

@ GrantWinney 오, 내 나쁜 나는 그것이 내가 만든 동적으로 만든 그림 이었는지 확인하기 위해 코드를 바꿨다. 편집 할게. – BornToGrill

답변

0

당신은 파일 의 끝 부분에 코드

tabPage.Controls.Add(pbl); 

당신의 라인을 제거해야합니다 anyControl.Controls.Add (otherControl)을 사용하여 otherControl.Parent를 anyControl에 설정합니다.

그런 종류의 컨트롤 설정이 필요하다면 동적으로 컨트롤을 만들고 설정하는 것이 좋습니다. usercontrol을 만들고 usercontrol 안에 로그를 넣으십시오. ic 메시지를 표시하고, 당신은 dinamically userControl을 만들 수 있고 원하는 곳이라면 넣을 수

관련 문제