Laden...

Forenbeiträge von esskar Ingesamt 203 Beiträge

27.03.2008 - 06:35 Uhr

this.Controls[StringFokus1].Focus();

this ist die form, die die textbox enthält

27.03.2008 - 06:33 Uhr
  1. wieso keinen designer?
  2. könntest resources files schreiben
  3. benutz .net.3.5 und wpf und schreib die xml files
25.03.2008 - 17:20 Uhr

class A : ICloneable
{
    public A Nachbar;
    protected A(A a)
    {
        if(a.Nachbar != null)
           this.Nachbar = a.Nachbar.Clone();
    }

    public object Clone()
    {
       return new A(this);
    }
}

meinst du so? (code nicht getestet, nur runtergeschrieben).

20.03.2008 - 19:24 Uhr

kenn das control nicht, aber irgendwie invalidaten?

20.03.2008 - 15:49 Uhr

hmm, ich dachte jetzt eigentlich, es würde reichen, wenn du

protected void OnDeactivate(EventArgs e)

überschreibst. aber das bringt es nicht.

du könntest nen timer benutzten, der alle paar millisekunden this.Focus() aufruft

20.03.2008 - 15:44 Uhr

ich grab das nochmal aus, da es damit zu tun hat:

ab und an kommt es nun vor, dass ich die titelleiste anklicken muss, damit das mdi in den vordergrund kommt. das fenster wird zwar aktiviert, bekommt focus und alles, kommt aber nicht in den vordergrund.

jemand ne idee? diesemal liegt es nicht an WndProc.

18.03.2008 - 09:06 Uhr

Könnt mích jetzt irren, aber das CompareTo müsste in einem StackOverFlow enden, da du die gleiche Methode immer wieder aufrufst:

  
public int CompareTo(object obj)  
{  
  return this.CompareTo(obj as ZorderForm);  
}  
  

Du rufst CompareTo auf, und als Rückgabewert, soll er this.CompareTo aufrufen.

bein zweiten mal wird aber


public int CompareTo(ZorderForm other)
{
   if (other == null)
      throw new ArgumentNullException("other");
   return this.ZOrder.CompareTo(other.ZOrder);
}

aufgerufen

18.03.2008 - 08:41 Uhr

keine kommentare?
hab noch IComparable implementiert um direkt sortieren zu können.

17.03.2008 - 19:20 Uhr

hab jetzt mal selbst was gemacht.
ist noch nicht ganz reif, aber auf die schnelle funzt es ...


public abstract class ZorderForm : Form, IComparable<ZorderForm>, IComparable
{
    public event ZorderChangedEvent ZorderChanged;

    private int m_zorder = 0;
    private bool m_zorderSet = false;
    public int ZOrder
    {
        get { return m_zorder; }
    }

    protected virtual void OnZorderChanged(ZorderChangedEventArgs e)
    {
        if (this.ZorderChanged != null)
            this.ZorderChanged.Invoke(this, e);
    }

    private void SetZorder(int zorder)
    {
        m_zorderSet = true;
        if (zorder != m_zorder)
        {
            ZorderChangedEventArgs e = new ZorderChangedEventArgs(m_zorder, zorder);
            m_zorder = zorder;
            this.OnZorderChanged(e);
        }

        // for testing
        this.Text = "ZOrder: " + m_zorder;
    }

    private void UpdateZorders(Form[] forms)
    {
        if (forms != null)
        {
            foreach (Form f in forms)
            {
                ZorderForm z = f as ZorderForm;
                if (z == null || ZorderForm.ReferenceEquals(z, this)) continue;
                if (z.ZOrder > this.ZOrder && m_zorderSet) continue;
                z.SetZorder(z.ZOrder + 1);
            }
        }
    }

    protected override void OnActivated(EventArgs e)
    {
        base.OnActivated(e);

        if (this.IsMdiChild)
            this.UpdateZorders(this.MdiParent.MdiChildren);
        else if (this.Owner != null)
            this.UpdateZorders(this.Owner.OwnedForms);
        this.SetZorder(0);
    }

    #region IComparable Members

    public int CompareTo(object obj)
    {
        return this.CompareTo(obj as ZorderForm);
    }

    #endregion

    #region IComparable<ZorderForm> Members

    public int CompareTo(ZorderForm other)
    {
        if (other == null)
           throw new ArgumentNullException("other");
        return this.ZOrder.CompareTo(other.ZOrder);
    }

    #endregion
}

public class ZorderChangedEventArgs : EventArgs 
{
    public int OldZorder;
    public int NewZorder;

    public ZorderChangedEventArgs(int oldZorder, int newZorder)
    {
        this.OldZorder = oldZorder;
        this.NewZorder = newZorder;
    }
}

public delegate void ZorderChangedEvent(object sender, ZorderChangedEventArgs e);

ist jetzt die base-klasse all meiner formen
was haltet ihr davon?

(ein wenig verbessert)

17.03.2008 - 19:16 Uhr

Eine Form hat doch die Eigenschaft MDIChildren. An Index 0 steht die Form, die als erstes erzeugt wurde und an letzter Stelle, welches halt zuletzt erzeugt wurde.

das ist mir klar... aber bringt mir ja nicht viel. 🙂

17.03.2008 - 18:01 Uhr

eigentlich geht es mir nicht mal um die genaue z-order;
wenn es eine möglichkeit gibt, die mdi-childs so zu durchlaufen wie sie angeordnet sind.

17.03.2008 - 17:39 Uhr

also nicht alles, nur position, size, etcpp. und verschiedene zustände ... ist quasi als konfiguarzion gedacht. bei einem erneuten öffnen des programms kann man die konfiguration laden und es sieht alles so aus wie vroher ... fenster sind an den plätzen, wo sie waren bevor das programm geschlossen wurde

17.03.2008 - 17:07 Uhr

Hallo,

kann ich irgendwie die z-order eines mdi-childs ermitteln.
ich serializiere eine form und deren mdi's.
an sich klappt das, nur bei der z-order happert es. will beim restore, dass die z-order erhalten bleibt... wenn ich sie beim serialisieren weiss, könnte ich die mdi-childs daran sortieren und beim restore in der reihenfolge neu erstellen.

15.01.2008 - 12:41 Uhr

danke...

15.01.2008 - 12:24 Uhr

Hallo,

ich hab ein Conrol von TextBox abgeleitet und OnKeyDown überschrieben.
Ich würde gerne, wenn der User ein Komma eingibt (,), soll Komma + Space in der TextBox erscheinen.
hier mein code:


public string InsertText(string text)
{
   return this.InsertText(text, this.SelectionStart, this.SelectionLength);
}

public string InsertText(string text, int start, int len)
{
   string s = this.Text;
   if (len > 0)
      s = s.Remove(start, len);            
   this.Text = s.Insert(start, text);
   this.SelectionStart = start + text.Length;
   return this.Text;
}

protected override void OnKeyDown(KeyEventArgs e)
{
   switch (e.KeyCode)
   {
      case Keys.Oemcomma:                    
         this.InsertText(", ");
         e.Handled = true;
         break;
                
      default:
         base.OnKeyDown(e);
         break;
    }            
}

leider wird nun ", ," eingefügt.
kann mir jemand sagen, warum das so ist?

04.12.2007 - 11:17 Uhr

wie äußert sich denn das fehlverhalten?

04.12.2007 - 10:48 Uhr

habs.
ich hab WndProc überschrieben, und dann teilweise nicht an base.WndProc weiter delegiert.

04.12.2007 - 09:09 Uhr

Hallo,

ich hab eine Mdi Form mt einzelnen mdi child forms.
komischerweise sind diese kinder nicht richtig aktivierbar.
d.h. ich kann zwar die controls in den kindern nutzen, aber die titelleiste des kindes hat immer die graue farbe - wie man sie von deaktiven fenstern kennt.

auch der Activated event wird nie gefeuert
hier der code


private void AddMdiChild(Form form, bool show)
{                        
    form.MdiParent = this;
    form.FormClosed += new FormClosedEventHandler(OnChildFormClosed);
    form.Activated += new EventHandler(OnChildFormActivated);
    if (show)
        form.Show();
}


04.12.2007 - 09:04 Uhr

danke.
hat geholfen.

15.11.2007 - 13:44 Uhr

Hi.

hab ein MenuStripMenu mit nem ToolStripMenu; dessen DropDownItems werden beim Klick nur auf checked/unchecked gesetzt.
Wie schaffe ich es jetzt, dass die DropDownItems sichtbar bleiben, wenn ich ein einzelnes item checke/unchecke, so dass ich nacheinander items checken/unchecken kann ohne dass ich das menü wieder aufrufen muss.
Danke.

02.10.2007 - 14:55 Uhr

lag an den unterschiedlichen threads

28.09.2007 - 17:01 Uhr

ich vermute, mit myHost.AddServiceEndpoint(typeof(IServerFunktionen), tcpBinding, "net.tcp://localhost:8888/AMLagerServer"); bindest du nur an localhost/127.0.0.1

28.09.2007 - 16:52 Uhr

ganz verstehe ich die frage nicht.
https funzt ja wie http, der client macht ne anfrage,
der server schickt sein zertifikat - und kann in diesem schritt ein zertifikat vom client verlangen.

aber ein server zertifikat muss immer geschickt werden.
ob der server ein client zertifikat haben will, ist im überlassen!

28.09.2007 - 16:09 Uhr
/* TransportHelper */
public static int SendMessage(Socket socket, TransportMessage message, out byte[] bytesSend)
{
   byte[] msgBytes = message.ToBytes();

   int retval = -1;
   using (MemoryStream ms = new MemoryStream())
   {
      BinaryWriter bw = new BinaryWriter(ms);
      bw.Write(msgBytes.Length);
      bw.Write(msgBytes);

      bytesSend = ms.ToArray();

      retval = socket.Send(bytesSend);
   }
   return retval;
}

public static int SendMessage(Socket socket, TransportMessage msg, LogObject logObj)
{
   int retval = -1;
   if (msg != null)
   {
      byte[] bytesSend = null;
      retval = TransportHelper.SendMessage(socket, msg, out bytesSend);
      if (bytesSend != null)
      {
         logObj.LogInfo("Send {0} bytes", bytesSend.Length);
         logObj.LogDebug("Bytes send: \n--- BEGIN HEXDUMP ---\n{0}--- END HEXDUMP ---", Util.HexDump(bytesSend));
      }
   }
   return retval;
}

das war die sendfunktion... die dump ausgabe sehe ich immer, die daten kommen nicht an bzw. verspätet

hier der client receive


private void ConnectCallback(IAsyncResult ar)
{
    try
    {
        TcpSocket socket = (TcpSocket)ar.AsyncState;
        socket.EndConnect(ar);

        this.SetStatus(StatusFlag.Online);
        if (this.InvokeOnConnectionSuccess() || m_asyncReceive)
            this.AsyncReceive();
    }
    catch (Exception e)
    {
        this.InvokeOnConnectionFailed(e);
    }
    finally
    {
       this.ProgressBarMarqueeStop();
    }
}

protected void AsyncReceive()
{
    this.AsyncReceive(new TransportAsyncState(m_socket, null));
}

protected void AsyncReceive(AsyncState state)
{
    if (m_receiveCallback == null)
        m_receiveCallback = new AsyncCallback(ReceiveCallback);
    state.Socket.BeginReceive(state.ReceiveBuffer, 0, state.ReceiveBuffer.Length, SocketFlags.None, m_receiveCallback, state);
}

private void ReceiveCallback(IAsyncResult ar)
{
    try
    {
        TransportAsyncState state = (TransportAsyncState)ar.AsyncState;
        int length = state.Socket.EndReceive(ar);
        // kommt nix an...
        System.Diagnostics.Debug.WriteLine("ReceiveCallback: " + length);
        if (length > 0)
        {
            state.ReceiveSync(length);
            TransportMessage message = state.ReadMessage();
            if (message != null)
            {
                TransportMessage resp = this.InvokeOnTransportClientReceived(message);
                if (resp != null)
                    this.SendTransportMessage(resp);
            }
        }

        this.AsyncReceive(state);
    }
    catch (Exception e)
    {
        this.InvokeOnReceiveFailed(e);
    }            
}

28.09.2007 - 16:00 Uhr

PS: zwischen drin werden daten auch über einen anderen thread über den selben socket geschickt.
kann es damit zusammen hängen?

28.09.2007 - 15:18 Uhr

Also,

ich hab ein stranges verhalten.
ich sende von einem server daten an einen client.
beide laufen auf der gleichen maschine.
jetzt kommt es vor, dass ich zwar vom server daten an den client schicke, diese aber nie ankommen.
der client warten auf die daten asynchron... die daten kommen nie an bzw. manchmal kommen sie erst minuten später an... manchmal auch gar nicht.
ich weiß, nicht viel anhaltspunkte, aber vielleicht hat ja jemand eine idee!

26.09.2007 - 14:26 Uhr

ich kann den evnt abfangen (WM_CONTEXTMENU), aber ob ich jetzt auf die header oder listview clicke, kann ich niht sagen.

hab es auch mit


Point p = new Point();
p.X = (int)(m.LParam.ToInt32() & 0xFFFF);
p.Y = (int)(m.LParam.ToInt32() >> 16);

                        MessageBox.Show (this.RectangleToScreen (this.ClientRectangle).Contains (p).ToString ());                        

versucht, aber damit komm ich auch nicht weiter, da die haeder auch zum clientrect gehören

26.09.2007 - 13:53 Uhr

gibts dazu ne lösung?

26.09.2007 - 12:01 Uhr

ah, danke! 😉
hab ich übersehen!

26.09.2007 - 11:12 Uhr

wenn es so einfach wäre: einsetzen der proerties width bzw. size, zeigt keinen effekt bzw. werden die breiten wieder zurück gesetzt

26.09.2007 - 10:58 Uhr

Moin,

ich hab ein ToolStrip.
Darin sind Buttons mit Eigenschaft TextImageRelation = ImageAboveText
Die Icons der Buttons haben zwar die selbe Breite (und Höhe), aber da die Beschriftung der einzelnen Buttons unterschiedlich Breit sind, sind auch die kompletten Buttons unterschiedlich breit.

Gibts ne Lösung dazu?

07.08.2007 - 21:34 Uhr

ich hab jetzt den statusstrip entfernt
stattdessen benutz ich jetzt ein TableLayouPanel mit Dock=Bottom, Rows=1
in die erste spalte kommt die progressbar, breite=100%
die spalten mit den bildern bekommen eine breite von 20px... das klappt dann

hth

07.08.2007 - 17:19 Uhr

ja, aber eine progressbar in dem statusstrip hat z.b. kein spring attribut.
oder ich bin zu beschränkt. 8o

06.08.2007 - 21:59 Uhr

private void StatusStrip_SizeChanged(object sender, EventArgs e)
{
    this.SetProgressBarSize();            
}

private void SetProgressBarSize()
{
    int count = this.StatusStrip.Items.Count;
    this.StatusStripProgressBar.Size = new Size(this.StatusStrip.ClientRectangle.Width - 5 - (count-1)*16, this.StatusStripProgressBar.Size.Height);
}

ich habe eine statusstrip.
erstes item ist eine progressbar.
alle nachfolgenden sind Images 16x16 (StatusLabel)

die progressbar soll immer so breit wie möglich sein, aber noch den platz von den icons frei lassen.
das resizen der progressbar klappt zusammen mit dem StatusStrip_SizeChanged event, aber leider bekommen die restlichen items des statusstrip die größen änderung der progressbar nicht mit und werden irgendwie nicht angezeigt.

weiß es jemand besser?

05.08.2007 - 11:59 Uhr

wenn e.Item == null, wuerde ich einfach nichts tun

zu den events:
klar, du kannst die venthandler immer wieder neu setzen (=), erweitern (+=) oder reduziern (-=)

05.08.2007 - 11:13 Uhr

manchmal muss man einfach mal ein paar naechte drueber schlafen.
wenn man dann noch alle exceptions, die man abfaengt, auswertet, kommt man selber auf das Problem. >)

trotzdem danke.

05.08.2007 - 08:47 Uhr

bringt es was, wenn du zuerst die liste fuellst und dann den event-handler setzt.
ist es die standard listview, die du verwendest, oder eine eigene?

04.08.2007 - 11:22 Uhr

hat niemand eine idee?
oder soll ich mal versuchen, ein minimal programm hochzuladen?

03.08.2007 - 15:56 Uhr

Also, ich habe eine TransportForm, die als basisklasse für versch. Fenster dient, die alle eine async verbindung zu einem server aufbaut und nachrrichten verschicken und empfangen kann


public partial class TransportForm : Form
    {
        private TcpSocket m_socket = null;
        private AsyncCallback m_receiveCallback = null;                
        public TransportForm()
        {
            this.InitializeComponent();
        }

        protected void Connect()
        {            
            this.ProgressBarMarqueeStart();

            this.Disconnect();

            this.Socket = new TcpSocket();
            this.Socket.BeginConnect(TransportHelper.Host, TransportHelper.Port, new AsyncCallback(ConnectCallback), this.Socket);                            
        }

        protected void Disconnect()
        {
            if (this.Socket != null)
                this.Socket.Close();
        }

        protected void AsyncReceive()
        {
            this.AsyncReceive(new TransportAsyncState(m_socket));
        }

        protected void AsyncReceive(AsyncState state)
        {
            if (m_receiveCallback == null)
                m_receiveCallback = new AsyncCallback(ReceiveCallback);
            state.Socket.BeginReceive(state.ReceiveBuffer, 0, state.ReceiveBuffer.Length, SocketFlags.None, m_receiveCallback, state);
        }

        private delegate bool ConnectionSuccessDelegate();

        protected virtual bool OnConnectionSuccess()
        {
            return false;
        }

        protected virtual void OnConnectionFailed(Exception e)
        {
        }

        private bool InvokeOnConnectionSuccess()
        {
            bool retval = false;
            if (this.InvokeRequired)
            {
                ConnectionSuccessDelegate connectionSuccess = new ConnectionSuccessDelegate(this.InvokeOnConnectionSuccess);
                retval = (bool)this.Invoke(connectionSuccess);                
            }
            else
            {
                retval = this.OnConnectionSuccess();         
            }

            return retval;
        }

        private delegate void ConnectionFailedDelegate(Exception e);
       
        private void InvokeOnConnectionFailed(Exception e)
        {
            if (this.InvokeRequired)
            {
                ConnectionFailedDelegate connectionFailed = new ConnectionFailedDelegate(this.InvokeOnConnectionFailed);
                this.Invoke(connectionFailed, new object[] { e });
            }
            else
            {
                this.OnConnectionFailed(e);
            }
        }

        protected virtual void OnReceiveFailed(Exception e)
        {
        }

        private void InvokeOnReceiveFailed(Exception e)
        {
            if (this.InvokeRequired)
            {
                ConnectionFailedDelegate connectionFailed = new ConnectionFailedDelegate(this.InvokeOnReceiveFailed);
                this.Invoke(connectionFailed, new object[] { e });
            }
            else
            {
                this.OnConnectionFailed(e);
            }
        }

        private void ReceiveCallback(IAsyncResult ar)
        {
            try
            {
                TransportAsyncState state = (TransportAsyncState)ar.AsyncState;
                int length = state.Socket.EndReceive(ar);
                if (length > 0)
                {
                    state.ReceiveSync(length);
                    TransportMessage message = state.ReadMessage();
                    if (message != null)
                    {
                        TransportMessage resp = this.InvokeOnTransportClientReceived(message);                        
                        if (resp != null)
                            this.SendTransportMessage(resp);
                    }
                }

                this.AsyncReceive(state);
            }
            catch (Exception e)
            {
                this.InvokeOnReceiveFailed(e);
            }            
        }

        private delegate void StatusStripProgressBarUpdateVoid();
        private delegate void StatusStripProgressBarUpdateInt(int value);

        protected void ProgressBarMarqueeStart()
        {
            if (this.InvokeRequired)
            {
                StatusStripProgressBarUpdateVoid updateProgressBar = new StatusStripProgressBarUpdateVoid(this.ProgressBarMarqueeStart);
                this.Invoke(updateProgressBar);
            }
            else
            {
                this.StatusStripProgressBar.MarqueeAnimationSpeed = 100;
                this.StatusStripProgressBar.Style = ProgressBarStyle.Marquee;
            }
        }

        protected void ProgressBarMaximum(int value)
        {
            if (this.InvokeRequired)
            {
                StatusStripProgressBarUpdateInt updateProgressBar = new StatusStripProgressBarUpdateInt(this.ProgressBarMaximum);
                this.Invoke(updateProgressBar, new object[] { value });
            }
            else
            {
                this.StatusStripProgressBar.Maximum = value;
            }
        }

        protected void ProgressBarValue(int value)
        {
            if (this.InvokeRequired)
            {
                StatusStripProgressBarUpdateInt updateProgressBar = new StatusStripProgressBarUpdateInt(this.ProgressBarValue);
                this.Invoke(updateProgressBar, new object[] { value });
            }
            else
            {
                this.StatusStripProgressBar.Value = value;
            }
        }

        protected void ProgressBarClear()
        {
            this.ProgressBarValue(0);
        }

        protected void ProgressBarMarqueeStop()
        {
            if (this.InvokeRequired)
            {
                StatusStripProgressBarUpdateVoid updateProgressBar = new StatusStripProgressBarUpdateVoid(this.ProgressBarMarqueeStop);
                this.Invoke(updateProgressBar);
            }
            else
            {
                this.ProgressBarClear();
                this.StatusStripProgressBar.MarqueeAnimationSpeed = 0;
                this.StatusStripProgressBar.Style = ProgressBarStyle.Blocks;
            }
        }

        private void ConnectCallback(IAsyncResult ar)
        {            
            try
            {
                this.Socket.EndConnect(ar);                
                if(this.InvokeOnConnectionSuccess())
                    this.AsyncReceive();                
            }
            catch (Exception e)
            {
                this.InvokeOnConnectionFailed(e);
            }
            finally
            {                
                this.ProgressBarMarqueeStop();
            }
        }

        private delegate TransportMessage AsyncOnTransportClientReceived(TransportMessage msg);

        private TransportMessage InvokeOnTransportClientReceived(TransportMessage msg)
        {
            TransportMessage retval;
            if (this.InvokeRequired)
            {
                AsyncOnTransportClientReceived callback = new AsyncOnTransportClientReceived(this.InvokeOnTransportClientReceived);
                retval = (TransportMessage)this.Invoke(callback, new object[] { msg });
            }
            else
            {
                retval = OnTransportClientReceived(msg);
            }
            return retval;
        }

        protected virtual TransportMessage OnTransportClientReceived(TransportMessage msg)
        {
            return null;
        }

        private void TransportForm_Load(object sender, EventArgs e)
        {
            if (this.SizeGripStyle == SizeGripStyle.Show)
                this.StatusStrip.SizingGrip = true;
            this.SetProgressBarSize();
            this.StatusStrip.SizeChanged += new EventHandler(StatusStrip_SizeChanged);
        }

        private void StatusStrip_SizeChanged(object sender, EventArgs e)
        {
            this.SetProgressBarSize();            
        }

        private void SetProgressBarSize()
        {
            this.StatusStripProgressBar.Size = new Size(this.StatusStrip.ClientRectangle.Width - 45, this.StatusStripProgressBar.Size.Height);
        }

        public TcpSocket Socket
        {
            get { return m_socket; }
            set { m_socket = value; }
        }

        public int SendTransportMessage(TransportMessage message)
        {
            return TransportHelper.SendMessage(this.Socket, message);
        }
    }

ein fenster leitet also von dieser Form ab und überschreibt die funktion OnTransportClientReceived, die über InvokeOnTransportClientReceived richtig aufgerufen werden sollte (also, so, dass der richtige thread auf die fenster zugreifen sollte).
leider hängt es irgendwo; heißt, die ListView wird nicht richtig gefüllt.


private void InsertStrategy(Strategy s)
        {            
            
            ListViewItem item = new ListViewItem(new string[] { s.Id, s.Category, "" });
            StrategiesListView.Items.Add(item);            
        }

        private TransportMessage HandleRetrieveStrategiesResult(TransportMessage msg)
        {            
            int count = msg.GetIntegerValue("COUNT");
            this.ProgressBarClear();
            this.ProgressBarMaximum(count);
            for (int i = 0; i < count; i++)
            {
                string unique = msg.GetStringValue("UNIQUE", i);
                string data = msg.GetStringValue("DATA", i);
            
                Strategy s = new XmlStrategy(unique, data);
                this.InsertStrategy(s);
                this.ProgressBarValue(i + 1);
            }
            //this.StrategiesView.Update(); 
            return null;
        }        

        protected override TransportMessage OnTransportClientReceived(TransportMessage msg)
        {
            TransportMessage resp = null;
            switch (msg.MessageType)
            {
                case TransportMessageType.RetrieveStrategiesResult:
                    resp = this.HandleRetrieveStrategiesResult(msg);
                    break;
            }            
            return resp;
        }

die schleife von i bis count iteriert nur einmal; progressbar wird abgedatet, aber kein item erscheint in der liste.

wenn ich die funktion InsertStrategy nicht aufrufe, füllt sich die progressbar komplett

sieht jemand meinen denkfehler?

28.01.2006 - 10:18 Uhr

nö, nö, nö.
gibt es vielleciht einen Repairer?

27.01.2006 - 18:13 Uhr

Bringt nix.
hat noch jemand einen anderen vorschlag?

27.01.2006 - 18:05 Uhr

Hallo,

ich hab ein Windows.Form geschrieben, die ich mit dem Designer konfiguriert habe.
Die Form ist schon relative mächtig.
Jetzt habe ich das Problem, dass der Designer abstürzt, wenn ich ein bestehendes Control änder oder ein neues hinzufüge. Zuerst wird die komplette CPU verbraucht und dann - nach etwa 2 Minuten - meldet sich der Dr. Watson.

Frage: kann man den Code vom Designer irgendwie neu berechnen lassen, da ich denke, dass er verschiedene Controls im Code nicht mehr findet (anzeigen tut er noch alles normal). Oder meint ihr, es bringt was auf das neue VS zu migrieren und das es dann bei der Projekt--Migration wieder gerade gebogen wird!?!

20.01.2006 - 18:06 Uhr

Ich benutze ein externes Modul, dass leider auf einem File arbeitet.

20.01.2006 - 13:00 Uhr

kannst du mal versuchen, ein minimal bespiel zu erzeugen, in dem man dein Problem nachvollziehen kann?

20.01.2006 - 12:56 Uhr

Hast du die Doppelt-Verkettete-Liste-Klasse selbst erstellt?
Oder benutzt du irgendwas fertiges?

Ich weiß nicht, wie du deine Klasse implementiert hast. Aber das einfachste (nicht schnellste - hängt von deiner Implementierung ab) wird sein, die Liste in ein Array zu schreiben, dieses zu sortieren, und wieder neu aufzubauen.

20.01.2006 - 12:48 Uhr

Danke für die Tipps.

20.01.2006 - 00:58 Uhr

ist form2 vom selben typ wie form1 ?
und was genau ist form1, form2?

20.01.2006 - 00:51 Uhr

du erlaubst anscheinend Anonymous Access im IIS auf deine WebApplication.
Dadurch weiß der IIS nicht, wer gerade die Seite aufruft-
Also mach einfach das Anonymous Access aus (irgendwo im Security Tab) und stell Windoows Authentication ein. Dadurch machst du dann NTLM, also bekommst du alles was du brauchst um dich als dieser User zu impersonifizieren!

20.01.2006 - 00:06 Uhr

Stimmt eigentlich: hab es jetzt mit einer internal Loader Klasse gemacht, die ich als static Object initialisiere... der Konstruktur macht dann die ganze Arbeit.

Ich hab dieser Klasse jetzt einfach einen Destruktor gegeben (also wirklich ~Loader() ) ... ist ja kein guter Stil - ist es für sowas in Ordnung oder soll ich es besser Disposable machen ?

19.01.2006 - 23:41 Uhr

Original von interzone
bekomm ich dann leider beim serialisieren den fehler, dass irgendwas nicht serializable gesetzt worden ist... 😭

Beschreib "irgendetwas" mal etwas genauer! 🙂