Ridimensionare form in un metodo interno

Stato
Discussione chiusa ad ulteriori risposte.

xXStephXx

Utente Electrum
28 Aprile 2008
389
16
1
125
Ciau raga... oggi ho un problema... Sto sviluppando un'imitazione di prato fiorito in visual c# 2008. Vorrei crearlo con un'interfaccia più spakkosa muahahahah!
Ovviamente ho un problema... (mooolto banale....)
Devo fare in modo di poter ridimensionare il form all'interno di una funzione (interna al form), in modo che durante la creazione della tabella con i bottoni, il form si adegui alla tabella, sia per evitare di lasciare spazi vuoti, sia per evitare che la tabella sia troppo grande rispetto al form...
Insomma, deve essere un form dinamico che cambia in base a x*y quadratini xD....

Nel frattempo vi posto il codice sorgente... (non lo leggerà nessuno, ma ditemi cosa ne pensate)... ho bisogno di aiuti anche nello stile di programmazione.

Codice:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Prato_fiorito
{
    public partial class MainForm : Form
    {
        public struct Casella
        {
            public int mine_vicine;
            public  bool mina;
            public bool già_cliccata;
            public Button bt;
        }
        
        public MainForm()
        {
            InitializeComponent();
        }
        Casella[,] casella;

        void Sistema_Mine(ref int x, ref int y, ref int n)
        {
            Random rand = new Random();
            int r;
            for (int i = 0; i < n; i++)
            {
                do
                {
                    r = rand.Next(0, x * y);
                } while (casella[r % x, r /x].mina == true);
                casella[r % x, r / x].mina = true;
            }
        }

        void Inizializza_Bottoni(ref  int x, ref  int y)
        {
            casella[x, y].bt = new Button();
            casella[x, y].bt.Size = new Size(23, 23);
            casella[x, y].bt.Location = new Point(23 * x, 23 * y);
            casella[x, y].bt.TextAlign = ContentAlignment.MiddleRight;
            casella[x, y].bt.Cursor = Cursors.Hand;
            Box.Controls.Add(casella[x, y].bt);

        }

        void Inizializza_casella(ref int x, ref int y)
        {
            casella[x,y].già_cliccata = false;
            casella[x,y].mina = false;
        }

        void Prepara_partita(int x, int y, int n_mine)
        {
            casella = new Casella[x, y];
            Box.Size = new Size(23 * x + 4, 23 * y + 4);

            for (int i = 0; i < x; i++)
            {
                for (int j = 0; j < y; j++)
                {
                    Inizializza_casella(ref i, ref j);
                    Inizializza_Bottoni(ref i, ref j);
                }
            }
            Sistema_Mine(ref x, ref y, ref n_mine);
        }

        private void MainForm_Load(object sender, EventArgs e)
        {

        }
                

    }
}

Sto ancora all'inizio....

Ovviamente ho provato con MainForm.ActiveForm.Size ecc... ma non va, lancia un'eccezione.
 
Mi perdonate se faccio un piccolo uppettino? xD....



Risolto usando il puntatore this (ancora una volta la teoria aiuta)...
vabbè capita.... u can :lock:
 
Stato
Discussione chiusa ad ulteriori risposte.