Vraag : Het uitrekken met 2D rechthoek

Groeten en begroetingen:

I am een het uitrekkenmethode testen die 2D rechthoeken in plaats van drawreversiblerectangle, gebruiken sinds zijn er a lot more opties met een rechthoek. Nochtans, ken ik genoeg over .NET grafiek niet om dit kleine probleem op te lossen:

After heb ik een een rubberbandlijn/rechthoek getrokken, verlaat ik het op doel onscreen. Wanneer ik klik om een andere lijn of rechthoek te beginnen, als ik binnen de rechthoek selecteer (of de onzichtbare rechthoek de lijn houden of de rubberbandrechthoek, niets die gebeuren. De muis klikt wordt genegeerd en ik ken geen why.

Apparently, heeft het rubberbandvoorwerp de muis gevangen. Ik probeerde toevoegend code aan de methode click voor rubberband om te verbergen, maar het extra werd klikken/>Is daar iets anders annoying.


I am gebruikend VS2005 w/VB.NET. BTW, als iedereen om het even welk deel van mijn code (zoals het is) kan gebruiken, u is welkom aan it.

Thanks.

P.S. Ik probeerde om het volledige project via PIT te verzenden, maar File niet werkt. Als u hier van dit dossier, antwoord zou houden of me een e-mail bij [email protected] zou verzenden. (of iemand kon me vertellen hoe te om het dossier hier te uploaden.)
" codeBody "
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
" notpretty "
 ' geschreven door schale (deskundige-uitwisseling of [email protected])

De invoer System.Drawing.Drawing2D

Openbare Klasse frmRubberband

    Const RubberLine = 0
    Const RubberRect = 1
    Het Vaste lichaam van Const = 0
    Const stormt = 1

    Schemerige StartPt als Punt
    Schemerige DrawToPt als Punt
    Schemerige LastPt als Punt
    Schemerige dwg zoals Van Boole = Vals
    Schemerige Rubberband als Van Boole = RubberLine
    Schemerige Linestyle als Geheel = Vast lichaam
    Schemerige MyPen als Nieuwe Pen (Color.FromArgb (128, Color.Black), 1)

    Privé SubfrmRubberband_Paint (ByVal afzender als System.Object, ByVal e als System.Windows.Forms.PaintEventArgs) behandelt MyBase.Paint
        Schemerig g als Grafiek = e.Graphics
        Schemerige MyBrush als Nieuwe SolidBrush (Color.FromArgb (128, 0, 0, 0))

        Met g
            'MyBrush.Color = Color.FromArgb (128, Color.Red)
            '.FillEllipse (MyBrush, 50, 50, 100, 50)
            'MyBrush.Color = Color.FromArgb (128, Color.Green)
            '.FillEllipse (MyBrush, 100, 75, 100, 50)
            'MyBrush.Color = Color.FromArgb (128, Color.Blue)
            '.FillEllipse (MyBrush, 150, 100, 100, 50)
            'MyBrush.Color = Color.FromArgb (128, Color.White)
            '.FillEllipse (MyBrush, 200, 120, 100, 50)
            .FillEllipse (Brushes.Red, 10, 10, 100, 50)
            .FillEllipse (Brushes.Green, 60, 60, 100, 50)
            .SmoothingMode = SmoothingMode.AntiAlias
            .FillEllipse (Brushes.Blue, 110, 110, 100, 50)
            .FillEllipse (Brushes.White, 160, 160, 100, 50)
        Eind met

    Sub van het eind

    Privé SubfrmRubberband_MouseDown (ByVal afzender als System.Object, ByVal e als System.Windows.Forms.MouseEventArgs) behandelt MyBase.MouseDown

        StartPt.X = e.X
        StartPt.Y = e.Y
        DrawToPt = StartPt
        LastPt = StartPt
        pbxRubberband.Show ()
        dwg = Waar

    Sub van het eind

    Privé SubfrmRubberband_MouseMove (ByVal afzender als System.Object, ByVal e als System.Windows.Forms.MouseEventArgs) behandelt MyBase.MouseMove

        Als dwg toen
            DrawToPt.X = e.X
            DrawToPt.Y = e.Y
            pbxRubberband.Show ()
            RedrawRubberBand ()
        Eind als

    Sub van het eind

    '=======================================================================
    '= Als de rubberbandverven over om het even welke controles op de vorm, = terugkeren
    '= klikt de ontwerpwijze, op rubberband met de rechtermuisknop en selecteert SEND_TO_BACK. =
    '=======================================================================
    Privé SubRedrawRubberBand ()
        Schemerige xStart, yStart, xEnd, yEnd als Geheel

        Met pbxRubberband

            Als DrawToPt.X < StartPt.X toen
                . Linkerzijde = DrawToPt.X
                . Breedte = StartPt.X - DrawToPt.X
                xStart = 0
                xEnd =. Breedte - 1
            Anders
                . Linkerzijde = StartPt.X
                . Breedte = DrawToPt.X - StartPt.X
                xStart =. Breedte - 1
                xEnd = 0
            Eind als

            Als DrawToPt.Y < StartPt.Y toen
                . Bovenkant = DrawToPt.Y
                . Hoogte = StartPt.Y - DrawToPt.Y
                yStart = 0
                yEnd =. Hoogte - 1
            Anders
                . Bovenkant = StartPt.Y
                . Hoogte = DrawToPt.Y - StartPt.Y
                yStart =. Hoogte - 1
                yEnd = 0
            Eind als

            . Verfris me ()
            Als Rubberband = RubberLine toen
                .CreateGraphics.DrawLine (MyPen, xStart, yStart, xEnd, yEnd)
            'Trek anders een RubberRectangle
                Als chkbxShadedRectangle.Checked toen

                    .CreateGraphics.FillRectangle (MyPen.Brush, 0, 0. Breedte - 1. Hoogte - 1)
                Anders
                    .CreateGraphics.DrawRectangle (MyPen, 0, 0. Breedte - 1. Hoogte - 1)
                Eind als
            Eind als
        Eind met

        LastPt = DrawToPt

    Sub van het eind

    Privé SubfrmRubberband_MouseUp (ByVal afzender als System.Object, ByVal e als System.Windows.Forms.MouseEventArgs) behandelt MyBase.MouseUp

        DrawToPt.X = e.X
        DrawToPt.Y = e.Y
        dwg = Vals

    Sub van het eind

    Privé SubbtnLine_Click (ByVal afzender als System.Object, ByVal e als System.EventArgs) behandelt btnLine.Click

        Rubberband = RubberLine
        RedrawRubberBand ()

    Sub van het eind

    Privé SubbtnRectangle_Click (ByVal afzender als System.Object, ByVal e als System.EventArgs) behandelt btnRectangle.Click

        Rubberband = RubberRect
        RedrawRubberBand ()

    Sub van het eind

    Privé SubbtnSolidLine_Click (ByVal afzender als System.Object, ByVal e als System.EventArgs) behandelt btnSolidLine.Click

        MyPen.DashStyle = DashStyle.Solid
        RedrawRubberBand ()

    Sub van het eind

    Privé SubbtnDashedLine_Click (ByVal afzender als System.Object, ByVal e als System.EventArgs) behandelt btnDashedLine.Click

        MyPen.DashStyle = DashStyle.Dash
        RedrawRubberBand ()

    Sub van het eind

    Privé Sub updnLineWidthSelect_ValueChanged (ByVal afzender als System.Object, ByVal e als System.EventArgs) Handvatten updnLineWidthSelect.ValueChanged

        MyPen.Width = updnLineWidthSelect.Value
        RedrawRubberBand ()

    Sub van het eind

    Privé Sub chkbxShadedRectangle_CheckedChanged (ByVal afzender als System.Object, ByVal e als System.EventArgs) Handvatten chkbxShadedRectangle.CheckedChanged

        RedrawRubberBand ()

    Sub van het eind

    'Privé SubpbxRubberband_Click (ByVal afzender als System.Object, ByVal e als System.EventArgs) behandelt pbxRubberband.Click
    'pbxRubberband.Hide ()
    'Sub van het eind
De Klasse van het eind

Antwoord : Het uitrekken met 2D rechthoek

1) zij zijn verschillend allen
2) 0
3) Nr
4) U moet de lijst handhaven door naar de website van elke staat (en vele provincies) regelmatig te gaan, en de tarieven bijgewerkt te houden.

Dat is waarom dit specialiteitzaken is.  Ik heb boekhoudingsintegratie meer dan 20 jaar gedaan, en ik zou niet denken aan het doen van dit zelf, zijn er teveel aansprakelijkheden.  Vele staten hebben speciale bureaus en de arbeiders de van wie full-time baan belastingen moet ervoor zorgen worden correct berekend, en u zult gezuiverd worden als u juist het niet doet.
Andere oplossingen  
 
programming4us programming4us