Moin!
Habe nachstehend ausgeführtes Problem:
Habe mit C# - WPA - xaml eine kleine Routine gefertigt - siehe anhängendes Bild.
Aus einer ComboBox können Unterichtsfächer angeklickt/selektiert und per Mausklick in eine TextBox eingetragen werden ...
<ComboBox
x:Name="DatenComo"
Margin="4,60,4,60"
Grid.Row="3"
Grid.Column="1"
Grid.ColumnSpan="2"
SelectionChanged="DatenComo_SelectionChanged"
IsReadOnly="True"
>
<ComboBoxItem>Mathe</ComboBoxItem>
<ComboBoxItem>Deutsch</ComboBoxItem>
<ComboBoxItem>Physik</ComboBoxItem>
<ComboBoxItem>Chemie</ComboBoxItem>
<ComboBoxItem>Biologie</ComboBoxItem>
<ComboBoxItem>Religion</ComboBoxItem>
<ComboBoxItem>Werte/Normen</ComboBoxItem>
<ComboBoxItem>Sport</ComboBoxItem>
<ComboBoxItem>Kunst</ComboBoxItem>
</ComboBox>
private void DatenComo_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
object selectedItem = DatenComo.SelectedItem;
TeMo.Text = selectedItem.ToString();
}
Der Text wird auch, wie vorgesehen, in die entsprechende TextBox eingetragen,
aber nicht nur das Unterichtsfach, in der gewünschten Form, sondern so:
System.Windows.Controls.ComboBoxItem: Werte/Normen
Was übersehe, mache ich falsch?
Jemand eine Idee?
mfg hans
[...]
this.Width;
[...]
Moin!
Genau das war/ist es!
👍
Danke an alle for help!
mfg hans
[...]
Aber es wurde kein Objekt "Form1" initialisiert.z.B.
Form1 myForm = new Form1(); int aktuelleBreite = myForm.Width;
namespace NewWidth_22_07_21
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Form1 myForm = new Form1();
int aktuelleBreite = myForm.Width;
}
private void button1_Click(object sender, EventArgs e)
{
Application.Exit(); // Programm beenden
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void Form1_Load_1(object sender, EventArgs e)
{
}
}
}
Wird mit folgender Meldung abgelehnt: System.StackOverflowException
mfg hans
Hallo,
der Code
int aktuelleBreite = Form1.Width;
ist so korrekt (sofern
Form1
ein initialisiertesForm
-Objekt darstellt).
Moin!
»Form1« ist eine Form, mit der ich bereits arbeite ...
namespace MakeNewLabel_22_07_21
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// label.Top = (ClientRectangle.Height - label.Height) / 2;
// 1.) int currentWidth = Form1.Width;
// 2.)size myFormSize = form.Size;
// 3.) int aktuelleBreite = Form1.Width;
}
private void button1_Click(object sender, EventArgs e)
{
Application.Exit(); // Programm beenden
}
}
}
Leider führte keiner der hier dankenwerterweise gemachten Hinweise zum Erfolg.
mfg hans
[...]
PS: Googlen ist in solchen Fällen meistens schneller als einen Beitrag im Forum zu eröffnen. Mit der Google Suchanfrage "form width docs microsoft c#" ist die von mir verlinkte Seite, zumindest bei mir, das erste Ergebnis.
Moin!
Die Seite hatte ich auch deutsch übersetzt gegoogelt,
welcher ich entnehmen kann, wie man eine neue form erstellt
und sie ausgestaltet.
Ich suche einfach nur nach einer korrekten Formulierung für das Auslesen des Width-Wertes.
mfg hans
Moin!
Kann man, in C#, im Code, die Breite einer vorhandenen Form abfragen?
So nach dem Motto:
int aktuelleBreite = Form1.Width; , oder ähnlich ?
Beispiele, die im Netz zu finden sind, zeigen, wie man Controls zur Laufzeit erstellt und ihnen eine Breite mitgibt.
mfg hans
Moin!
Das kommt sicher als nächstes dran!
mfg hans
Moin!
Vielen Dank, werde ich mir ansehen und durcharbeiten.
Ich bin dabei, diese Oberfläche, zur Laufzeit,
mit drei Schleifen zu erzeugen
die Elemente, in/mit den Schleifen zu positionieren
und ihnen alle nötigen Eigenschaften mitzugeben.
Wie schon gesagt, ohne großen Anspruch, nur als Fingerübung,
damit das Hirn etwas zu tun hat - und es macht Spaß.
Ich erlebe C# nun sehr Entwicklerfreundlich.
mfg hans
Weiterhin kann man sich z.B. ein Windows Forms Projekt anlegen und
[...]
Moin!
Vielen Dank!
Bin im Moment weg von der Konsole und hin zur Form und
habe, als Fingerübung, damit begonnen, einen Oberfläche zusammenzuklöppeln,
die ich ähnlich, wie zu DOS-Zeiten, in der Konsole gestalten wollte ...
mfg hans