Laden...

Forenbeiträge von Wanginator Ingesamt 33 Beiträge

09.05.2009 - 13:53 Uhr

ja, daran hab ich auch gedacht. Hast du vielleicht ein Beispiel, wie das funktioniert. Bei meinen Versuchen scheitert es daran, dass ich mir nur das oberste Element zurückgeben kann. Und ein Button leider stets den Click-Event vorher abfängt.

08.05.2009 - 18:50 Uhr

Es geht nicht darum ob ich es mit der Tastatur ansteuern will. Das KeyBinding ist z.Zt. nur für Testzwecke. Später erhält meine Applikation nur noch einen Event mit x,y-Koordinaten. Ich muss dann rausfinden, welcher Button zu klicken ist. Da die Buttons sich bewegen kann ich nicht einfach eins auswählen und von dem die Click-Methode aufrufen, sondern muss erst rausfinden, um welchen Button es sich handelt.

08.05.2009 - 00:53 Uhr

Hallo,

ich habe mehrere Buttons in meiner Application, die sich "wild" rumbewegen. Nun möchte ich dass auf ein Tastendruck ein Mausklick an einer bestimmten X,Y Position simuliert wird. Falls sich dort gerade ein Button befindet, soll die OnClick Methode von dem Button aufgerufen werden. Leider finde ich in der API keine Möglichkeit um die Mausklicks zu simulieren, wie kann man das lösen?

02.05.2009 - 17:09 Uhr

Hallo,

angenommen ich habe ein Storyboard erstellt, welches 10 Sekunden andauert. Nun möchte ich, dass das Storyboard für einen Abschnitt abgespielt wird, z.B. von 3 Sekunden bis 6 Sekunden. Wie könnte ich das realisieren?

01.05.2009 - 01:08 Uhr

Ja, danke. Das hat schon mal etwas geholfen. Jetzt sitz ich an folgendem Problem.

<Button Width="100" Height="100" x:Name="myButton">
	<Button.Template>
		<ControlTemplate>
      		        <Rectangle>
        			<Rectangle.Fill>
          				<ImageBrush ImageSource="bla.jpg" />
        			</Rectangle.Fill>
      			</Rectangle>
    		</ControlTemplate>
	</Button.Template>
</Button>

Ich möchte das Bild dynamisch im Code verändern. Aber wie komme ich da ran?

30.04.2009 - 19:57 Uhr

Hallo,

ich möchte auf einen schwarzen Hintegrund einen Button mit schwarzen Hintegrund malen. Jedoch zeigt WPF mir immer noch einen leichten weiß/grauen Rand unten und etwas rechts und links an. Wie bekomme ich den weg? Hab schon Border, BorderThickness, etc. probiert.

29.04.2009 - 22:26 Uhr

Hallo,

ich löse bei einem Button-Click eine Animation über Storyboard aus. Nun möchte ich gerne reagieren, wenn die Animation zu Ende ist. Welche Möglichkeiten habe ich da?

11.08.2008 - 19:17 Uhr

Gibt es dazu irgendwelche Tutorials oder Doku im Netz?

11.08.2008 - 02:44 Uhr

Hallo,

ich hoffe dieses Unterforum ist der richtige Bereich für meine Frage. Ich möchte für ein neues Softwareprojekt eine Software schreiben, die per Sprache gesteuert werden kann. Hab gedacht, dafür würde sich der Speech Server 2007 und die zugehörige SDK oder API eignen. Das ganze dann mit C# und VS2008 für WinXP und Vista implementieren.

Zuerst möchte ich aber nur ein paar Testprogramme schreiben um zu grucken was alles möglich ist. Leider finde ich im Netz sehr wenig Dokumentation oder Tutorials dazu. Kann mir da evtl. jemand von euch weiterhelfen. Als erstes soll vielleicht etwas geschrieben werden wie eine einfache Form mit Textfeld, wo das was diktiert wird vom System hingetippt wird.

10.05.2008 - 20:00 Uhr

Habs hinbekommen. Musste nur die Events einfach weiterleiten an das UserControl.

10.05.2008 - 19:33 Uhr

Alles klar, muss ich wohl anders lösen.

Andere Frage:
Ich habe ein benutzerdefiniertes Steuerelemnt. Genauer gesagt es ist ein zusammengesetztes Steuerelement aus Standard-Steuerelementen. Irgendwie werden die Events aber nicht behandelt.


MyUserControlc = new MyUserControl();
c.Click += c_Click;
...

private void c_Click(object sender, EventArgs e) {
   MessageBox.Show("test"); //kommt hier nicht an
}


public partial class MyUserControl: UserControl {
  ... zusammengesetzte Steuerelemente
}

Muss ich irgendwie noch angeben, wie Click-Events behandelt werden soll?

10.05.2008 - 17:51 Uhr

An einer Komponente, z.B. Timer sollen sich verschiedene EventHandler anmelden können. Nebenbei soll es aber auch eine Funktion geben, die Komponente auf den Urzustand zu setzen, also alle angemeldeten EventHandler rausschmeißen.

Mir fällt da als Lösung nur ein eine zusätzliche Liste von EventHandler nebenbei mitzuverwalten.

10.05.2008 - 17:24 Uhr

Hallo,

für events kann ich ja mit += neue EventHandler hinzufügen und mit -= alte wieder entfernen. Gibt es auch eine Möglichkeit alls hinzugefügten EventHandler entfernen zu lassen, ohne dass ich jetzt weiß welche hinzugefügt worden sind?

29.04.2008 - 21:00 Uhr

Hallo,

ich habe hier ein C# Windows Forms Projekt. An manchen Stellen blockiert das Programm, weil ein Sound synchron abgespielt wird oder kurz ein paar Sekunden geschlafen werden soll. Leider nimmt das Programm weiter Eingaben an und speichert sie in einer Queue. Wenn das Programm dann weiterläüft wird diese Queue abgearbeitet.

Beispiel: Das Programm schläft gerade 5 Sekunden. Der Benutzer klickt 3-mal auf eine Schaltfläche. Es passiert zuerst nichts. Nach dem Schlafen werden diese 3-Klicks auf die Schaltfläche abgearbeitet.

Was ich gerne haben möchte, ist dass diese Events während des Schlafens nicht mitgespeichert werden, oder irgendwie Events während des Schlafens nicht zu erlauben, oder zumindest eine Möglichkeit die Queue selber zu leeren. Nun weiß ich nicht ob das überhaupt geht, oder ob das von C#/.NET/Windows verwaltet wird?

26.02.2008 - 17:56 Uhr

Hallo,

ich habe folgendes Problem, wo ich leider nicht mehr weiter weiß:

Ich habe zwei Listen a und b. In a sind Objekte gespeichert mit einer boolesche Variablen m. In b sind alle Indizes aus der Liste a gespeichert, deren Objekte m==true haben.

Nun möchte ich beide Listen miteinander synchronisieren, also:
Wenn in a für ein Objekt m auf true gesetzt wird, soll der Index in b eingefügt werden.
Wenn in a für ein Objekt m auf false gesetzt wird, soll der Index in b gelöscht werden.
Wenn in b ein Index hinzugefügt wird, soll in a das Objekt m auf true setzen.
Und wenn in b ein Index gelöscht wird, soll in a das Objekt m auf false setzen.

Was ist die eleganteste Methode das hinzubekommen? Ich fände hier Indexer schön, weiß aber nicht, in welcher Form sie anzubringen wären?

EDIT: Eine Umwandlungsfunktion von der einen Liste in die andere Liste soll vermieden werden, da sonst alle Objekte angefasst werden müssen. Die Indizes-Liste ist dafür gedacht, dass man schnell durch die Objekte mit m==true iterieren kann.

25.02.2008 - 19:55 Uhr

danke, habs nun hinbekommen

25.02.2008 - 17:43 Uhr

Nein, das mit dem int b = 10 ist nur ein Beispiel. Eigentlich sollen da mehrere Berechnungsschritte gemacht werden und dann das Ergebnis in den Konstruktor-Aufruf gesteckt werden.

25.02.2008 - 17:32 Uhr

Hallo,

irgendwie steh ich gerade auf den Schlauch was Konstruktoren betrifft. Ich habe eine Klasse mit zwei Konstruktoren, wobei die eine etwas Vorverarbeitung machen soll und dann die zweite aufrufen soll. Das geht ja aber nicht, da ein Konstruktoreaufruf in einem Konstruktor immer an erster Stelle stehen muss.

Beispiel:


    public Test(int a) {        
        //berechne int b durch mehrere Berechnungsschritte
        this(a,b);
    }
    
    public Test(int a, int b) {
        //tue etwas mit a,b
    }

Sowas in der Art hätt ich gerne, aber die Anweisung this(a,b) muss an erster Stelle stehen. Hab schon mit Test(...) und Kontruktorverkettung probiert, aber hat auch nicht geklappt.

27.01.2008 - 00:42 Uhr

Hallo,

ich möchte gerne ein Fenster stets Maximized halten. Dafür wurde der WindowState auf Maximized gesetzt und die MaximizeBox deaktiviert. Um den Doppelklick auf der Titelleiste zu unterbinden, habe ich wie oben erwähnt die WndProc-Message abgefangen.

Problem ist, dass man das Fenster imm ernoch verschieben kann. Um das zu verhinden kann man die MaximizeBox wieder aktivieren. Dann kann man aber über den MaximizeButton das Fenster verkleinern.

Gibt es eine Möglichkeit das Fesnter maxmiert zu halten und nicht verschiebbar?

20.01.2008 - 17:18 Uhr

Jein, also bei WinXP gibt es in der Systemsteuerung->Sounds und Audiogeräte ja die Optionen für die Sounds und da kann man definieren welche abgespielt werden für kritische Fehler, Standard Warnton usw.

Je nach MessageBox-Art, also Warnung, Information, Frage, etc. wird nun eine dieser eingestellten Sounds abgespielt. Nun ist die Frage, ob ich als Programmierer der Software die Möglichkeit habe bei einer MessageBox diesen Sound auszublenden, aber nicht systemweit, sondern nur für dieses eine Mal in diesem einen Programm.

Sehr schön wäre als ein weiterer Parameter bei MessageBox.Show(...), mit der man das steuern kann, aber ich habe leider keinen gefunden.

20.01.2008 - 16:00 Uhr

Hallo,

gibt es eine Möglichkeit, denn Beep-Sound bei Anzeige einer MessageBox zu unterdrücken? Also außer jetzt eine eigene Form zu erstellen und showDialog() aufzurufen. Normalerweise ist das ja eine Einstellung aus Windows.

19.01.2008 - 00:08 Uhr

Ja, vielen Dank.

Inhalt soll sich an Fenster anpassen

Habe es nun einigermaßen mit TableLayoutPanel und Dock und Anchor geschafft. Aber es gibt noch ein kleines Problem, was sich am folgenden Beispiel erklären lässt:

Man habe ein 3x3 TableLayout (Spalten=20%,60%,20% und Zeilen=20%,60%,20%) und in der mittleren Zelle ein Button. Nun soll dieser Button sich dynamisch mit der Zellgröße anpassen, also setze man Dock=Fill oder Anchor=Top,Bottom,Left,Right. Soweit so gut. Zieht man das Fenster aber zu groß (oder maximiert es), so wird der Button auch dementsprechend groß. Also will man den Button in der Maximalgröße beschränken, mit MaximumSize=.... Das Problem ist nun, dass wenn die maximale Größe erreicht wird, der Button nun in der linken oberen Ecke der Zelle bleibt. Wie schafft man es nun den Button auch zentriert in der Zelle zu platzieren?

18.01.2008 - 16:12 Uhr

Hallo, habe ein wohl öfters vorkommendes Problem:

Wenn die Fenstergröße eines Windows Forms C#-Programm vergrößert oder verkleinert wird, bleiben die Steuerelemente an der vordefinierten Stelle (Left, Top) stehen. Zwar kann man mittels Dock sie einer Seite zuordnen oder mit Anchor an eine Ecke binden, aber ist es möglich das Layout komplett dynamisch der aktuellen Fenstergröße anzupassen (wie mittels WPF)? Sprich die Steuerelemente wachsen/schrumpfen relativ zur Fenstergröße und platzieren sich auch relativ. Das einzige, was mir einfältt wäre die Form.Resize Event zu behandeln und alle Steuerlemente ihre Größe und Position neu berechnen zu lassen, was viel zu umständlich ist.

13.12.2007 - 19:10 Uhr

Vielen Dank, dann weiß ich jetzt Bescheid 🙂

Hat jemand vielleicht noch ein Link aus der MSDN wo das dokumentiert wird?

13.12.2007 - 12:03 Uhr

Strings sind ja immutable objects in Java und C# und verhalten sich doch relativ ähnlich. Was ich nicht verstanden habe, ist folgendes Codeschnipsel:

Java-Code:


char[] data = {'a', 'b', 'c'};
System.out.println("abc" == "abc");
System.out.println("abc" == new String(data));
System.out.println("abc".equals("abc"));
System.out.println("abc".equals(new String(data)));

gibt true, false, true, true zurück.

C#-Code:


char[] data = {'a', 'b', 'c'};
System.Console.WriteLine("abc" == "abc");
System.Console.WriteLine("abc" == new String(data));
System.Console.WriteLine("abc".Equals("abc"));
System.Console.WriteLine("abc".Equals(new String(data)));

gibt True, True, True, True zurück.

Kann mir jemand erklären, warum beim zweiten Vergleich verschiedene Resultate entstehen?

13.12.2007 - 11:48 Uhr

Ist die winmm.dll standardmäßig bei allen Windows-Versionen (ab 98) nach der Neuinstallation mit dabei? Muss wissen ob mciSendString universell einsetzbar ist für versch. OS-Versionen

13.12.2007 - 11:46 Uhr

Die Software soll auf Schulrechnern laufen, die erfahrungsgemäß ältere Rechner haben. Unterstützt werden soll alles ab Windows 98.

Aus diesem Grunde suche ich eine Methode um mp3 und wav abzuspielen, die möglichst mit allen OS-Versionen ab Win98 kompatibel ist (auch unter Betracht was für Software noch installiert ist). System.Media.Soundplayer hat sich halt angeboten, da es direkt im .NET Framework drin steckt, und da das Programm ein .NET 2.0 Programm ist, sollte es ansich ja auch funktionieren. Tut es für Win98 aber scheinbar nicht. Kann man davon ausgehen, dass alle OS mciSendString verstehen, sprich die winmm.dll stets vorhanden ist? Ich schau mir das mit DirectX auch mal an, obwohl ich glaube dass das zu viel Overkill wäre.

12.12.2007 - 23:20 Uhr

Hallo,

ich möchte in einem Programm mp3 und wav-Dateien abspielen können. Für mp3 habe ich wohl keine andere Wahl als mciSendString. Für wav würde ich jedoch gerne den System.Media.Soundplayer nehmen, da er wohl kompatibler und leichter handzuhaben ist. Zwar funktioniert bisher alles wie gewollt, nur leider scheint die Schiene mit dem Soundplayer unter Windows 98 nicht zu funktionieren. Zumindest unter VirtualPC hab ich es probiert und da spielt er nichts ab.

Ich muss aber sicherstellen, dass das Programm auch unter Win98 läuft. Sollte ich jetzt für beide Formate mciSendString benutzen? Kann jemand das bestätigen das der SoundPlayer unter Windows 98 nicht funktioniert oder evtl. doch funktioniert? Ich habe zum Austesten das Beispiel aus der MSDN genommen: http://msdn2.microsoft.com/en-us/library/system.media.soundplayer.aspx

28.11.2007 - 15:01 Uhr

Ja, das habe ich getestet. Die Steuerelemente werden zwar richtig ersetzt, aber halt auch nur die Steuerelemente. Alle Event-Handler sind aber dann nicht mehr damit verbunden, weil sie in der anderen Form liegen.

28.11.2007 - 14:49 Uhr

Was ich eigentlich vorhatte war von einer Form die Controls durch die Controls einer anderen Form zu ersetzen. Leider ist Controls schriebgeschützt.

28.11.2007 - 14:42 Uhr

Ne, der Benutzer soll ja nicht tabmäßig springen dürfen, sondern nur einen Schritt zurück oder vor. Wie es z.B. bei Assistenen der Fall ist.

28.11.2007 - 14:39 Uhr

Hallo,

ich schreibe in dieses Unterforum, da mir sonst kein passenderes eingefallen ist.

Ich möchte ein Windows Forms Programm schreiben. Ich entwickle dabei unter .NET 2.0 (obwohl 3.5 installiert ist) und unter XP. Wie sicher ist es, dass die kompilierte Release-Version auch unter Windows 98 (mit .NET 2.0), Windows 2000, Windows 2003 Server, Windows Vista lauffähig ist? Ist es garantiert dass das Programm sich genauso verhält, wenn .NET 2.0 jeweils installiert ist?

Ich frage auch deshalb, weil das Programm die Interop-Bilbiotheken benutzt um Sounddateien abzuspielen. Insb. wird da die winmm.dll importiert.

28.11.2007 - 14:35 Uhr

Hallo,

ich schreibe gerade ein Programm in C#, welches aus mehreren Forms besteht. Jede Form hat ein Next Button, der zum nächsten Schritt weitergeht, also von Form1 auf Form2, von Form2 auf Form3 usw.

Nun würd ich gern wissen, was die beste Herangehensweise dafür ist?
Ich mach bisher immer this.Close() oder this.Hide() und erzeuge dann ein neues Objekt des nächsten Frames, z.B. Form2 form2 = new Form2(); und form2.Show();
Gibt es keine bessere Methodik dafür, sowas zu realisieren? Zudem ich Form1 nie schließen kann, weil sonst das Programm aus dem Application.Run-Loop herausspringt und sich beendet.