2009-06-22 3 views
1

진행률 표시 줄을 사용하여 배터리 상태를 표시하고 있습니다. 사용자가 진행률 표시 줄을 클릭하면 세부 정보 팝업이 표시됩니다.진행률 표시 줄 클릭 (Compact Framework)

클릭 coordonates가 진행률 막대의 경계에 있는지 확인해야하는 솔루션을 제외하면 누구나 다른 해결책이나 해결책을 찾았습니까?

+0

ProgressBar의 압축 버전에는 Click 이벤트가 없습니까? – Groo

+0

아니요, 그렇지 않습니다. – Fiur

답변

1

OK, 사용자 정의 컨트롤을 수행하는 더 쉬운 방법은 UserControl에서 시작하여 ProgressBar를 놓고 도킹하여 UserControl을 채우고 ProgressBar를 UserControl의 public 속성으로 노출하는 것입니다. 그

myProgressBar1.ProgressBar.Max = 100 

대신

말할 것 코드
progressBar1.Max = 100 

그럼 그냥 (난 당신이 클릭이 작동하려면 내부의 ProgressBar를 사용하지 않도록해야 할 수도 있습니다 생각 세부 정보를 표시하는 UserControl을의 Click 이벤트를 사용 , 그러나 그 모양에 영향을 미치면 안됩니다 f 진행 바).

이렇게하면 사용자 컨트롤이 일반 진행률 막대와 똑같이 생깁니다 (따라서 엉덩이와 비슷합니다). :)

0

저는 항상 내 자신의 사용자 지정 ProgressBar usercontrol을 작성했습니다. 쓰기에는 5 분 정도 걸리고 내장 된 진행률 표시 줄 컨트롤은 어쨌든 엉덩이처럼 보입니다.

Reflection을 사용하는 것이 가능할 수도 있지만 직접 컨트롤을 작성하는 것이 더 쉽습니다.

업데이트 : ProgressBar를 Control (Click 이벤트가 있음)로 캐스팅 한 다음 코드에서 이벤트 핸들러를 할당하려고 시도했지만 작동하지 않습니다.

+0

Compact Framework를 전혀 사용하지 않았지만 OnClick()을 단순히 재정 의하여 사용자 지정 이벤트를 발생시키는 파생 컨트롤을 만드는 것이 가능할 수 있습니다. – Groo

+0

나는 사용자 정의 컨트롤을 생성하고 한 번만 사용하는 것을 열망하지는 않지만 갈 길이 멀다. 어쨌든 다른 솔루션이 제공되는지 확인하려면 며칠 정도 기다려야합니다. 그렇지 않으면 대답으로 받아 들일 것입니다. 지옥, 내 애플 리케이션에서 컨트롤의 절반 이상이 관례입니다. – Fiur

1

또한 일반적으로 사용자가 익숙한 방식으로 컨트롤 만 사용하는 것이 좋습니다. 진행률 표시 줄은 정보를 표시하기위한 목적으로 만 사용됩니다 (전통적으로 사용됨). 이것이 Compact Framework에서 모든 상호 작용 이벤트를 제거한 이유입니다.

더 나은 방법은 진행률 표시 줄을 그대로두고 술집 옆이나 옆에있는 "세부 정보"LinkLabel을 추가하는 것입니다.

+0

나는 이것에 당신과 동의하지 않습니다. 나는 당신이 사용자를 교육하는 방법에 달려 있다고 생각한다. 배터리를 보여주는 진행 표시 줄이 클릭 가능한 다른 것들 중에서 툴바 영역에있을 때, 사용자가 그것을 클릭하려고 시도 할 것이라고 생각한다. 부활절 달걀이라고 생각하지 않는다. 세부 레이블은 이상이 아니며 공백이 없습니다. – Fiur