Autor Beitrag
Gepro
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Di 17.04.07 23:01 
hallo!

ich hab da mal ne frage, ich möchte ein item-tag aus meinem listview ziehen, den text davon soll er erfassen und auf
einen panel schieben, wenn ich von dem item ziehe filtert er auch den richtigen text raus (hab ich mit der mbox überprüft)
und wenn ich den text auf das panel ziehen möchte, soll er mir den text in einem blauen rechteck ausgeben (programmier zur zeit ein fussballspiel, möchte also einen spieler(item) aus dem listview auf einem panel(quasi das spielfeld ziehen)
er kann bei mir aber kein rechteck auf dem panel zeichnen

das muss irgentwie hieran liegen:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
private void panel1_DragDrop(object sender, DragEventArgs e)
{     
    Pen pen = new Pen(Color.FromArgb(255, Color.Blue), 15);

    Graphics g = panel1.CreateGraphics();
    g.DrawRectangle(pen, e.X, e.Y, 12020);
}


ich kenne mich mit der grafikprogrammierung auch net so gut aus, wenn ich einfach (jetzt mal ohne drag & drop) zb ein rechteck zeichne, dann zeigt der mir das erst an, wenn ich das rechteck nach einem button click zeichne. wenn ich das ins form_load oda in den kontruktor packe geht das nicht, vllt ist das ja auch der fehler mit dem drag & drop ..
also was kann ich jetzt tun?

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
vermis-one
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 25

Win XP
VB.NET/C# VS2008express, XNA3.0 CTP
BeitragVerfasst: Do 19.04.07 21:21 
hab dein code jetz nicht ausprobiert und mit drag&drop hat ich bisher noch nichts zu tun..

aber ich denk das dem code der refresh fehlt..
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
private void panel1_DragDrop(object sender, DragEventArgs e)
{     
    Pen pen = new Pen(Color.FromArgb(255, Color.Blue), 15);

    Graphics g = panel1.CreateGraphics();
    g.DrawRectangle(pen, e.X, e.Y, 12020);

    panel1.Refresh();
}


der sagt dem panel das es sich neuzeichnen und alle änderungen berücksichtigen soll..

ich würd aber erstmal nicht in ein panel zeichnen sondern direkt auf form (doublebuffer-eigenschaft auf true)
da ich die erfahrung gemacht habe das auf einem panel ein einziges geflackere rauskommt..

und zweitens wenn es etwas dauerhaft gezeichnet werden soll pack es in das paint-ereigniss des panels oder forms..
das ist zuständig für´s zeichnen..

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
//sollte dann so aussehen
private void panel1_Paint(object sender, PaintEventArgs e)
{
        Pen pen = new Pen(Color.FromArgb(255, Color.Blue), 15);
        e.Graphics.DrawRectangle(pen, e.X, e.Y, 12020);
}


dann spart man sich das ständige refreshen.. musst dem paint nur sagen wann es das zeichnen soll..

mfg

_________________
Vor dem Zweiten Weltkrieg war das Leben einfach, danach gab es Computer. Grace Hopper