콤보 박스 내에서 이미지를 그리는 방법에 대한 많은 질문과 예제가 있습니다. 그러나 콤보 박스 내에서 애니메이션을 그리는 방법을 발견하지 못했습니다.콤보 박스의 그림 애니메이션
내가 사용하는 GIF 애니메이션 (이 투명입니다)입니다 :
내가 달성하고자하는 결과는 다음과 같이 somethink이다 : 나는 윈도우 폼 및 .NET 3.5을 사용하고
.
그 모든 것을 달성하기위한 방법은 다음과 같습니다.
1. ComboBox의 DrawItem 핸들러에서 Graphics.DrawImage를 사용하십시오. 그러나 이미지는 정적으로 그려졌으며 아무런 설명이 없었습니다.
2. PictureBox를 사용하여 애니메이션을 표시 한 다음 크기를 조정하고 ComboBox 위에 놓습니다. 두 번째 soultion를 들어
나는 다음과 같은 코드를 사용 :
pictureBox1 = new PictureBox();
pictureBox1.Image = Resource.myImage;
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
//3 is used just for try to fit image into "white" area of ComboBox
pictureBox1.ClientSize = new Size(comboBox1.Size.Height-3, comboBox1.Size.Height-3);
pictureBox1.BackColor = System.Drawing.Color.Transparent;
pictureBox1.Dock = DockStyle.Left;
pictureBox1.Parent = this.comboBox1;
pictureBox1.Enabled = true;
pictureBox1.Visible = true;
그러나 결과에 내가있어이 :
그것은 애니메이션,하지만의 PictureBox가 콤보 상자의 모서리에 그려진되고 나쁜 보인다 .
그럼, 아무에게 나에게 조언이나 도움을 줄 수 있습니까?
감사합니다.
편집 : 일
내 최종 솔루션 :
pictureBox1 = new PictureBox(); pictureBox1.Image = Resource1.myImage; pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; pictureBox1.ClientSize = new Size(comboBox1.Size.Height - SystemInformation.Border3DSize.Height, comboBox1.Size.Height - (2 * SystemInformation.Border3DSize.Height)); pictureBox1.BackColor = System.Drawing.Color.Transparent; pictureBox1.Location = new Point(SystemInformation.Border3DSize.Width, SystemInformation.Border3DSize.Height); pictureBox1.Parent = this.comboBox1; pictureBox1.Enabled = true; pictureBox1.Visible = true;
ClientSize 대신 PictureBox의 크기를 설정해 보셨습니까? – hometoast
@hometoast 예, 시도했지만 눈에 띄는 변화는 없었습니다. – Apokal