|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
[C#]Toolstrip menu personalizzato
Ciao a tutti
Da un vecchio 3d sul quale mi aiutò gugoXX, stavo cercando di realizzare un menu riusabile per le applicazioni di tipo winforms. Ora, senza entrare troppo in dettaglio sulla qualità del codice che vi posterò, mi trovo difronte ad una difficoltà. Essenzialmente questo menu può avere due stati: 1) Gli items presenti sono predisposti per l'inserimento 2) Gli items presenti sono predisposti per l'aggiornamento Mi spiego: 1) L'utente apre il form e il menu si carica dandogli la possibilità di cliccare o soltanto su "nuovo" o soltanto su "esci". 2) L'utente ha fatto una ricerca su di un record e il form si è popolato con i dati di tale record quindi il comportamento del menu dovrebbe essere di disattivare gli items "nuovo" ed "esci" ed attivargli l'item "modifica". il codice del menu è questo: Codice:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
namespace ProvaMenu
{
public partial class SimpleToolStrip : UserControl
{
public SimpleToolStrip()
{
InitializeComponent();
}
public virtual ToolStripItemCollection Items
{
get
{
return toolStrip1.Items;
}
}
public delegate void OnNewActionHandler();
public delegate void OnSaveActionHandler();
public delegate void OnCancelActionHandler();
public delegate void OnUpdateActionHandler();
public delegate void OnCloseActionHandler();
public delegate void OnDeleteActionHandler();
public event OnNewActionHandler OnNewAction;
public event OnSaveActionHandler OnSaveAction;
public event OnCancelActionHandler OnCancelAction;
public event OnUpdateActionHandler OnUpdateAction;
public event OnCloseActionHandler OnClose;
public event OnDeleteActionHandler OnDeleteAction;
private void NewClicked()
{
toolStrip1.Items[0].Enabled = false;
toolStrip1.Items[2].Enabled = true;
toolStrip1.Items[4].Enabled = true;
toolStrip1.Items[6].Enabled = false;
toolStrip1.Items[8].Enabled = false;
toolStrip1.Items[10].Enabled = false;
toolStrip1.Items[12].Enabled = false;
toolStrip1.Items[14].Enabled = false;
}
private void MenuLoad(bool stato)
{
switch (stato)
{
case false:
toolStrip1.Items[0].Enabled = true;
toolStrip1.Items[2].Enabled = false;
toolStrip1.Items[4].Enabled = false;
toolStrip1.Items[6].Enabled = false;
toolStrip1.Items[8].Enabled = false;
toolStrip1.Items[10].Enabled = false;
toolStrip1.Items[12].Enabled = false;
toolStrip1.Items[14].Enabled = true;
break;
case true:
toolStrip1.Items[0].Enabled = false;
toolStrip1.Items[2].Enabled = false;
toolStrip1.Items[4].Enabled = false;
toolStrip1.Items[6].Enabled = true;
toolStrip1.Items[8].Enabled = false;
toolStrip1.Items[10].Enabled = true;
toolStrip1.Items[12].Enabled = false;
toolStrip1.Items[14].Enabled = true;
break;
default:
break;
}
}
private void tsNew_Click(object sender, EventArgs e)
{
OnNewAction();
NewClicked();
}
private void tsExit_Click(object sender, EventArgs e)
{
OnClose();
}
private void tsSave_Click(object sender, EventArgs e)
{
OnSaveAction();
}
private void tsCancel_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Attenzione! Tutti i dati non salvati andranno persi!", "ANNULLAMENTO OPERAZIONE", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)
{
OnCancelAction();
MenuLoad(false);
}
}
private void SimpleToolStrip_Load(object sender, EventArgs e)
{
MenuLoad(false);
}
private void tsElimina_Click(object sender, EventArgs e)
{
OnDeleteAction();
}
private void tsUpdate_Click(object sender, EventArgs e)
{
OnUpdateAction();
}
}
}
Come faccio a passare al mio menu un ipotetico stato? Grazie mille RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:24.



















