내가 클래스를 생성하고이 같이있는 ListView에서 파생 한 경우 ... ListView의 OnDrawItem 이벤트가 디자인 타임 환경에 영향을주지 않는 이유는 무엇입니까?
class MyListView : ListView
{
public MyListView() : base()
{
DoubleBuffered = true;
OwnerDraw = true;
Cursor = Cursors.Hand;
Scrollable = false;
}
protected override void OnDrawItem(DrawListViewItemEventArgs e)
{
//base.OnDrawItem(e);
}
}
는 그럼 난 내 창문 양식의 디자인 뷰를 열고 새 MyListView의 객체가 단일 항목을 추가하고 링크 추가 이미지 목록에. mylistview 객체에 하나의 항목이 있음을 알 수 있습니다. 내 양식에
lv
MyListView
유형의 개체에 아무런 영향을 미치지 않습니다. 다른 앱에서 앱을 실행하면 예상 한 바를 정확히 볼 수 있으며 항목이 나열되지 않습니다.
이 효과는 런타임에 디자인 타임이 아닌 이유는 무엇입니까?
음 ... 좋아요. 코드를 새 클래스 파일에 붙여 넣은 다음 양식을 열고 도구 상자를 클릭하여 양식 위로 끌어 놓습니다. 양식에서 새 객체를 선택하고'LargeImageList'를 내 imagelist로 변경하고 항목을 편집하여 imagelist의 이미지와 함께 하나의 항목을 포함하고 'LargeIcon'의 기본'View '를 사용합니다. 그것은 디자인 타임에 항목을 잘 보여 주지만 실행하고 아무 것도 표시되지 않습니다 ... 어떻게 작동 시키려고하는지 저에게 놀라워요. –
View 속성을 설정하지 않으면 커다란 오류가 발생합니다. 맞춤 설정을 할 때 많은 문제가 있습니다. 바로 지금 당신은 라벨을 그리는 것을 보았을뿐입니다. 그것은 맞춤식으로 그려지지 않았습니다.추측 : Load 이벤트를 사용하여 속성을 변경하지 마십시오. * gauche *입니다. –
이 코드로 테스트 한 결과는 다음과 같습니다 :'this.View = System.Windows.Forms.View.Details; this.OwnerDraw = true; this.Columns.Add ("X"); this.Items.Add ("1"); this.Items.Add ("2");하지만 아무것도 바뀌지 않았습니다. –