Laden...

Profil von Satanlike

myCSharp.de - Member Mitglied seit
S
Satanlike
myCSharp.de - Member
41
Themen
133
Beiträge
Dabei seit
05.01.2006
Letzte Aktivität
vor 14 Jahren
Alter
43 Jahre
Beruf
Diplom Informatiker (FH)
Erstellt vor 15 Jahren

Wenn ich eine Zeile mehr einfüge als aktuell benötigt, müsste ich ein ColSpan für die erste Spalte setzen, welcher über alle Spalten geht. Da ich aber zur Laufzeit neue Zeilen hinzufüge, müsste ich das jedesmal beachten.
Außerdem wird der Tabellenrahmen gezeichnet, den würde man dann ja auch bei der (evtl. sehr hohen) letzten Zeile sehen.

Erstellt vor 15 Jahren

Hallo,

ich habe folgende Situation: Ein TableLayoutPanel in einem UserControl. Das UserControl ist auf einer Form untergebracht (Anchor auf allen 4 Seiten).
Das TableLayoutPanel hat eine feste Anzahl an Spalten und eine dynamische Anzahl an Zeilen. Alle Zeilen sollen dieselbe Höhe haben. Die letzte Spalte soll Autosize sein, d.h. den verbliebenen Platz zur rechten Seite ausfüllen.
Zeilen kann man zur Laufzeit anfügend, d.h. das TableLayoutPanel kann zur Laufzeit höher werden.

Jetzt habe ich folgende Situationen schon gehabt:*Scrollbalken für die Höhe funktioniert, aber die letzte Spalte wird nicht automatisch breiter. *Kein Scrollbalken, dafür ist die letzte Spalte Autosize und (leider) auch die letzte Zeile Autosize.

Ich habe schon diverse Docking/Anchoring/Autosizing/Autoscrolling Möglichkeiten durchprobiert und keine führte zu einem ordentlichen Ergebnis.
Vielleicht kennt ja jemand genau dieses Problem und hat es schonmal gelöst.

Erstellt vor 15 Jahren

Hallo,

ich habe einen Webservice via WCF erstellt und folgendes Problem:
Ich benötige dafür ein WSDL, was ich unserem Kunden zukommen lassen kann.
Rufe ich im IE http://localhost:8732/MyWebserivce/?wsdl auf, werden die Parameter der einzelnen Methoden nirgendwo im XML erwähnt.
Speichere ich den Seitenquelltext in einer Datei X.wsdl und generiere via

wsdl.exe /out:C:\x.cs C:\x.wsdl

die Code-Datei, bekomme ich eine Fehlermeldung:

Error: Die BasicHttpBinding_IWebServiceCustomer-Bindung von Namespace 'http:/
/XYZ.com' kann nicht importiert werden.
  - Der CreateToken-Vorgang kann nicht importiert werden.
  - Das Element 'http://XYZ.com:CreateToken' ist nicht vorhanden.

If you would like more help, please type "wsdl /?".

Verwende ich allerdings:

wsdl.exe /out:C:\x.cs http://localhost:8732/MyWebserivce/?wsdl

dann funktioniert alles bestens. Was holt sich denn die wsdl.exe noch alles vom Webserver um die Code-Dateien zu erzeugen? Muss ich eine weitere Seite im IE aufrufen um an alle weiteren Daten zu kommen?

Erstellt vor 15 Jahren

Diese Lösung ist sicherlich das Optimum und wird bei neuen Programmteilen so angewendet. Wenn wir aber in älterem Code nachträglich eine Progressbar anzeigen wollen, ist eine Realisierung über backgroundworker usw. zeitlich nicht vertretbar.

Erstellt vor 15 Jahren

Meinst du damit, ich soll die ProgressBarForm in einem separaten Thread erstellen und alle Methodenaufrufen per BeginInvoke machen?
Das eigentliche Problem ist ja, dass man den Abbrechen-Button in der ProgressBarForm nicht klicken kann, weil die Form blockiert.

Erstellt vor 15 Jahren

Ich sehe nicht, wie dieser FAQ Eintrag mir weiterhilft.

Erstellt vor 15 Jahren

Danke, das erklärt warum es blockiert.
Stellt sich nur noch die Frage, wie ich das Problem elegant löse.

Erstellt vor 15 Jahren

Hallo,

Ich habe eine nicht-modale Form mit einer ProgressBar (FormProgressBar) und einem Abbrechen button.
Diese Form wird nur in einer speziellen Klasse ClassProgressbar instantiiert. Diese Klasse bietet die Methoden Start() und Stop(), sowie AdvanceStep() und das Property "Canceled".
Möchte man die ProgressBar benutzen, instantiiert man ClassProgressbar und ruft die Methode Start() auf (dort wird dann die Form mit .Show() aufgerufen, also nicht modal). Bei jedem Schritt im Hauptprogramm ruft man .AdvanceStep() auf und der ProgressBar bewegt sich weiter. Was aber nicht funktioniert ist der Abbrechen-Button, da die nicht-modale Form blockiert, wenn die andere Form die ProgressBar in einem Hauptthread verwendet:

Beispiel:


void button1_Click(object sender, EventArgs e)
{
   ClassProgressBar bar = new ClassProgressBar(this); //this wird als owner gesetzt
   bar.Start();
   for (int i=0; i<=100; i++)
   {
      bar.AdvanceStep();
      Thread.Sleep(200);
      if (bar.Canceled) break;
    }
   bar.Stop();
}

in ClassProgressBar wird bei Start() die Show(IWin32Window owner)-Methode der Form aufgerufen.

Leider verstehe ich nicht, warum die nicht-modale Form blockiert. Die blockiert übrigens auch, wenn der owner nicht gesetzt wird. Haben nicht-modale Forms nicht einen eigenen UI-Thread?

Hat jemand da einen Lösungsvorschlag für mich? Auch wenn ich in besagter Schleife die Form direkt benutze, blockiert diese.

Erstellt vor 15 Jahren

So, ich habe eine Testanwendung: http://rapidshare.de/files/49092516/TestApplication.zip.html

Das Problem tritt nur unter Windows Vista auf. XP und 7 haben das Problem nicht.
Die Textbox und der "..." Button passen ihre Größe nicht an, wenn man die Größe der Form verändert.
Benutzt man allerdings den vertikal Splitcontainer, funktioniert es korrekt,

Erstellt vor 15 Jahren

Also das Resize Problem tritt tief in dem Control auf, dass der TabPage hinzugefügt wird. Das Control, das in der TabPage drin ist, funktioniert richtig. Aber in dem Control darin sind z.B. Textboxen, bei denen der Anchor nicht mehr richtig funktioniert.

Das Problem tritt allerdings nur unter Vista auf. Unter Windows XP funktioniert alles bestens.