Formular wird abgeschnitten, bei Minimalgrößen-Eingabe

Probot

Grünschnabel
Hallo!

Ich habe folgendes herausgefunden (programmiere mit Visual Studio 2005 und 2008, C++\CLI):
Mein Formular hat im Designer eine Größe von 1152 x 612 (B x H), für die Minimalgröße stelle ich folgenden Wert ein: 100 x 612.
Starte ich jetzt das Programm bei einer Bildschirmauflösung von 1600 x 1200 funktioniert alles so wie es soll.
Wird das Programm aber bei einer Auflösung von 1024 x 768 gestartet, wird das Formular abgeschnitten (Siehe Bild im Anhang). Ändert man jetzt die Größe des Formulars, bleiben die Komponenten trotzdem abgeschnitten, auch wenn die Anchor der Komponenten (Button und Textbox) auf Top, Right eingestellt wurden.


Jetzt habe ich herausgefunden, dass alles richtig funktioniert, wenn der Wert bei Minimalgröße für die Höhe um mindestens 2 kleiner ist. Also bei 100 x 611 wird immer noch abgeschnitten, bei 100 x 610 nicht mehr.

Ist das bei euch auch so? Ist dies ein Bug oder gibt es dafür eine Erklärung?

Zum austesten könnt ihr folgendes machen, damit ihr gleich das Formular wie ich habt:
Erstelle eine neue Windows-Forms-Anwendung und gib ihr den Namen z.B. "Test1"
Anschließend markiere den gesamten Code des Form1.h und überschreibe ihn mit dem folgenden. Hast du einen anderen Projektnamen als Test1 gewählt, dann musst du noch in der 3. / 4. Zeile, dort wo "using namespace Test1;" steht, anstatt "Test1" deinen Projektnamen eingeben. Dann compilieren und testen.
Der Code:
Code:
#pragma once


namespace Test1 {

	using namespace System;
	using namespace System::ComponentModel;
	using namespace System::Collections;
	using namespace System::Windows::Forms;
	using namespace System::Data;
	using namespace System::Drawing;

	/// <summary>
	/// Zusammenfassung für Form1
	///
	/// Warnung: Wenn Sie den Namen dieser Klasse ändern, müssen Sie auch
	///          die Ressourcendateiname-Eigenschaft für das Tool zur Kompilierung verwalteter Ressourcen ändern,
	///          das allen RESX-Dateien zugewiesen ist, von denen diese Klasse abhängt.
	///          Anderenfalls können die Designer nicht korrekt mit den lokalisierten Ressourcen
	///          arbeiten, die diesem Formular zugewiesen sind.
	/// </summary>
	public ref class Form1 : public System::Windows::Forms::Form
	{
	public:
		Form1(void)
		{
			InitializeComponent();
			//
			//TODO: Konstruktorcode hier hinzufügen.
			//
		}

	protected:
		/// <summary>
		/// Verwendete Ressourcen bereinigen.
		/// </summary>
		~Form1()
		{
			if (components)
			{
				delete components;
			}
		}
	private: System::Windows::Forms::DataGridView^  dataGridView1;
	protected: 
	private: System::Windows::Forms::Button^  button1;
	private: System::Windows::Forms::TextBox^  textBox1;

	private:
		/// <summary>
		/// Erforderliche Designervariable.
		/// </summary>
		System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
		/// <summary>
		/// Erforderliche Methode für die Designerunterstützung.
		/// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
		/// </summary>
		void InitializeComponent(void)
		{
			this->dataGridView1 = (gcnew System::Windows::Forms::DataGridView());
			this->button1 = (gcnew System::Windows::Forms::Button());
			this->textBox1 = (gcnew System::Windows::Forms::TextBox());
			(cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->dataGridView1))->BeginInit();
			this->SuspendLayout();
			// 
			// dataGridView1
			// 
			this->dataGridView1->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Bottom) 
				| System::Windows::Forms::AnchorStyles::Left) 
				| System::Windows::Forms::AnchorStyles::Right));
			this->dataGridView1->ColumnHeadersHeightSizeMode = System::Windows::Forms::DataGridViewColumnHeadersHeightSizeMode::AutoSize;
			this->dataGridView1->Location = System::Drawing::Point(18, 12);
			this->dataGridView1->Name = L"dataGridView1";
			this->dataGridView1->Size = System::Drawing::Size(885, 439);
			this->dataGridView1->TabIndex = 0;
			// 
			// button1
			// 
			this->button1->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Right));
			this->button1->Location = System::Drawing::Point(912, 17);
			this->button1->Name = L"button1";
			this->button1->Size = System::Drawing::Size(212, 35);
			this->button1->TabIndex = 1;
			this->button1->Text = L"button1";
			this->button1->UseVisualStyleBackColor = true;
			// 
			// textBox1
			// 
			this->textBox1->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Right));
			this->textBox1->Location = System::Drawing::Point(915, 73);
			this->textBox1->Name = L"textBox1";
			this->textBox1->Size = System::Drawing::Size(208, 20);
			this->textBox1->TabIndex = 2;
			// 
			// Form1
			// 
			this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
			this->ClientSize = System::Drawing::Size(1136, 476);
			this->Controls->Add(this->textBox1);
			this->Controls->Add(this->button1);
			this->Controls->Add(this->dataGridView1);
			this->MinimumSize = System::Drawing::Size(100, 511);
			this->Name = L"Form1";
			this->StartPosition = System::Windows::Forms::FormStartPosition::CenterScreen;
			this->Text = L"Form1";
			(cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->dataGridView1))->EndInit();
			this->ResumeLayout(false);
			this->PerformLayout();

		}
#pragma endregion
	};
}
 

Anhänge

  • Abgeschnitten1.jpg
    Abgeschnitten1.jpg
    21 KB · Aufrufe: 21
Zurück