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.
Sto ancora all'inizio....
Ovviamente ho provato con MainForm.ActiveForm.Size ecc... ma non va, lancia un'eccezione.
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.