2011-12-09 15 views
1

誰かが私のケースステートメントの記述方法が間違っていると教えてください。私はそれに間違って何も見ることはできませんが、コンパイラは、 "重複するケース項目: '0'、" HatchSytle.Horizo​​ntalの行のために、次のエラーを発生し続けます。私がその行をコメントアウトすると、問題なくコンパイルできます。重複するケース項目: "0"

ご覧のとおり、私がチェックしている要素はどれも同じではありません。だから私は何の誤りもないはずです。私が間違っているなら、私を訂正してください。

case TMakerGraphic(obj).theBrushStyle of 
    HatchStyle.Min: BrushStyleCombo.SelectedIndex := 1; 
    HatchStyle.ZigZag: BrushStyleCombo.SelectedIndex := 0; 
    HatchStyle.BackwardDiagonal: BrushStyleCombo.SelectedIndex := 2; 
    HatchStyle.ForwardDiagonal: BrushStyleCombo.SelectedIndex := 3; 
    HatchStyle.Cross: BrushStyleCombo.SelectedIndex := 4; 
    HatchStyle.DiagonalCross: BrushStyleCombo.SelectedIndex := 5; 
    HatchStyle.Horizontal: BrushStyleCombo.SelectedIndex := 6; <<<< Line raising error. 
    HatchStyle.Vertical: BrushStyleCombo.SelectedIndex := 7; 
    end; 

おかげ

+0

これは、それぞれのケースに対してbreakステートメントを追加しなくてもいい方法を思い出させます。 –

+0

@ vc74、それは非常にクールです:) – ThN

答えて

3
私は考えることができる

だけの事がenum HatchStyleがゼロで一度どこかに一度Horizontalで、二回定義された、としているということでしょう。

あなたのコードはHatchStyleですか、それとも使用しているサードパーティのライブラリですか?いずれにしても、そのコードを見て(または逆アセンブルして)列挙型の数値が何であるかを調べることから始めます。

+0

「HatchStyle」の一部ですフレームワーク - 私はしばらくの間、.NETで描画コードを行っていないと思います... –

+0

@ Joe Enos、はい、あなたは正しいです。 – ThN

4

Minと水平は同じ整数値に関連付けられている:

public enum HatchStyle 
    { 
     // Summary: 
     //  Specifies hatch style System.Drawing.Drawing2D.HatchStyle.Horizontal. 
     Min = 0, 
     // 
     // Summary: 
     //  A pattern of horizontal lines. 
     Horizontal = 0, 
    ... 
    } 
+0

あなたは絶対に正しいです – ThN

関連する問題