BD

Conectare la o baza de date in Acces cu C#

Mai intai realizati o baza de date numita bd2.mdb care sa contina o tabela cu doua campuri cod si nume si pe care o slvati in c: .

Codul C#

1. Ne conectam folosind un obiect Connection
2. Realizam un obiect de comanda Command
3. Executam citirea din baza de date si afisam rezultatele

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
using System.Configuration;

namespace bdconn
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{

OleDbConnection con = new OleDbConnection (@”Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\bd2.mdb”);
con.Open();
MessageBox.Show(“M-am conectat”);

OleDbCommand cmd = new OleDbCommand(“Select * from scoala”,con);
OleDbDataReader reader = cmd.ExecuteReader();

while (reader.Read())
{

object cod = reader["cod"];
object nume = reader["nume"];
System.Console.WriteLine(“{0}\t{1}”, cod, nume);

}

reader.Close();
con.Close();

}
}
}

Lista de obiecte

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Drawing.Drawing2D;
using System.IO;
using System.Drawing.Imaging;

namespace ImageListExample
{

public class ImageListExample : System.Windows.Forms.Form
{
internal System.Windows.Forms.Button contruieste_lista;
private System.Windows.Forms.ImageList imageList1;
private System.Windows.Forms.PictureBox pictureBox2;
private System.Windows.Forms.Button button1;
private System.ComponentModel.IContainer components;

public ImageListExample()
{

InitializeComponent();

}

protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}

#region Windows Form Designer generated code
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.contruieste_lista = new System.Windows.Forms.Button();
this.imageList1 = new System.Windows.Forms.ImageList this.components);
this.pictureBox2 = new System.Windows.Forms.PictureBox();
this.button1 = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
this.SuspendLayout();

this.contruieste_lista.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.contruieste_lista.Location = new System.Drawing.Point(23, 248);
this.contruieste_lista.Name = “contruieste_lista”;
this.contruieste_lista.Size = new System.Drawing.Size(120, 32);
this.contruieste_lista.TabIndex = 2;
this.contruieste_lista.Text = “Desene”;
this.contruieste_lista.Click += new System.EventHandler(this.contruieste_lista_Click);
//
// imageList1
//
this.imageList1.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
this.imageList1.ImageSize = new System.Drawing.Size(16, 16);
this.imageList1.TransparentColor = System.Drawing.Color.Transparent;
//
// pictureBox2
//
this.pictureBox2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(224)))), ((int)(((byte)(192)))));
this.pictureBox2.Location = new System.Drawing.Point(298, 190);
this.pictureBox2.Name = “pictureBox2″;
this.pictureBox2.Size = new System.Drawing.Size(136, 96);
this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
this.pictureBox2.TabIndex = 4;
this.pictureBox2.TabStop = false;
this.pictureBox2.Click += new System.EventHandler(this.pictureBox2_Click);
//
// button1
//
this.button1.Location = new System.Drawing.Point(177, 248);
this.button1.Name = “button1″;
this.button1.Size = new System.Drawing.Size(104, 32);
this.button1.TabIndex = 5;
this.button1.Text = “Animate”;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// ImageListExample
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
this.AutoScroll = true;
this.ClientSize = new System.Drawing.Size(950, 312);
this.Controls.Add(this.button1);
this.Controls.Add(this.pictureBox2);
this.Controls.Add(this.contruieste_lista);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
this.Name = “ImageListExample”;
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show;
this.Text = “PV6″;
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();

}
#endregion

[STAThread]
static void Main()
{
Application.Run(new ImageListExample());
}

ImageList desene_animate = new System.Windows.Forms.ImageList();

private void contruieste_lista_Click(object sender, System.EventArgs e)
{
// Configureaza lista
desene_animate.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
desene_animate.ImageSize = new System.Drawing.Size(60, 60);
desene_animate.Images.Clear();

string[] gif_uri = Directory.GetFiles(“\\Imagini”, “*.gif”);

// se construieste un obiect Imagine pentru fiecare fisier si se adauga la ImageList.

foreach (string fisier_gif in gif_uri)
{
Bitmap desen= new Bitmap (fisier_gif);
desene_animate.Images.Add(desen);
pictureBox2.Image=desen;
}

Graphics g = this.CreateGraphics();

// Deseneaza fiecare imagine utilizand metoda ImageList.Draw()
//MessageBox.Show(“”+desene_animate.Images.Count);

for (int i = 0; i < desene_animate.Images.Count; i++)
{
//if (i<10)
desene_animate.Draw(g, 60 + i * 60, 60, i);
//else desene_animate.Draw(g, 60 + (i-10) * 60, 120, i);
}
g.Dispose();

}

private void button1_Click(object sender, System.EventArgs e)
{
string[] gif_uri = Directory.GetFiles(“E:\\Imagini”, “*.gif”);

foreach (string fisier_gif in gif_uri)
{
Bitmap desen= new Bitmap (fisier_gif);
pictureBox2.Image=desen;
MessageBox.Show(“Next”);
}

}

private void pictureBox2_Click(object sender, EventArgs e)
{

}

}
}

Form din alt Form

1. Pe Forma1 adaugati un buton
2. Selectati Add din Solution Explorer (clic cu butonul din dreapta pe Form1) şi apoi Windows Form. Va apare fereastra de dialog Add New Item în care vom alege Windows Form, iar la Name vom tasta Form2.cs şi apoi Add.
3. A aparut o noua macheta pe care putem realiza o interfata
4. La apasarea butonului se activeaza forma2 cu metoda ShowDialog() a obiectului ob din clasa Form2.

private void Button1_Click(object sender, EventArgs e)
{
Form2 ob = new Form2();
ob.ShowDialog();
}

Tema1

Realizati un meniu care sa cuprinda 4 Itemi ce vor referi 4 forme:
1.Primul panou sa fie verde si sa aiba trasata o elipsa
2. Al doilea panou sa fie albastru si sa aiba trasat un dreptunghi
3. Al treilea panou sa fie roz si sa contina un triunghi
4. Helpul sa fie un panou galben care sa contina formulele de calcul pentru aria celor trei figuri geometrice de mai sus.

Tema 2

Modificati tema1 a.i. in fiecare panou sa apara posibilitatea introducerii elementelor de calcul pentru aria figurii geometrice din panou si afisarea rezultatului.

Menu

Pentru studierea meniurilor in C# avem la dispozitie urmatoarea resursa.

http://en.csharp-online.net/Tool%2C_Menu%2C_and_Status_Strips

Tema:

Realizati o aplicati pentru tema ” O afacere de succes” in care sa proiectati un meniu in care sa aveti prevazut un Help, Exit, Descrierea, ERD-ul.

LabelLink

Fisa de laborator

1. Adaugati pe panou etichetele si etichetele de legatura:
Click pentru a explora C:\
Click pentru a naviga http://www.microsoft.com/ro/ro/
Click pentru a rula Notepad

Asociati codul etichetelor de legatura:
private void etichetaC_LinkClicked( object sender, LinkLabelLinkClickedEventArgs e )
{
etichetaC.LinkVisited = true;
System.Diagnostics.Process.Start( @”C:\” );
}

private void etichetaI_LinkClicked( object sender, LinkLabelLinkClickedEventArgs e )
{
etichetaI.LinkVisited = true;
System.Diagnostics.Process.Start( “IExplore”, “http://www.microsoft.com/romania/&#8221; );
}

private void etichetaN_LinkClicked( object sender, LinkLabelLinkClickedEventArgs e )
{
etichetaN.LinkVisited = true;
System.Diagnostics.Process.Start( “notepad” );
}

Tema:

Adaugati un link catre o fotografie stocata in calculator.

Grafica

TEMA 1

Sa se plaseze pe panoul de intrare doua butoane cu textul Elipsa si Dreptunghi. La apasarea lor intr-un panel sa apara o elipsa si un dreptunghi.

Solutie data de Bogdan:

private void Dreptunghi_Click(object sender, EventArgs e)
{
int L=100;
int H=80;
Graphics g = panel1.CreateGraphics();
Color fundal = panel1.BackColor;
g.Clear(fundal);
Pen pen = new Pen(Color.Black);
int x = panel1.Width / 2 – L / 2;
int y = panel1.Height / 2 – H / 2;
Rectangle a = new Rectangle(x, y, L, H);
g.DrawRectangle (pen, a);
g.Dispose();
}

private void Elipsa_Click(object sender, EventArgs e)
{
int L = 100;
int H = 80;
Graphics g = panel1.CreateGraphics();
Color fundal = panel1.BackColor;
g.Clear(fundal);
Pen pen = new Pen(Color.Black);
int x = panel1.Width / 2 – L / 2;
int y = panel1.Height / 2 – H / 2;
Rectangle a = new Elipsa(x, y, L, H);
g.DrawEllipse(pen, a);
g.Dispose();

}

Tema 2

Colorati panel-ul in verde si umpleti figurile grafice cu galben.

Controalele RadioButton şi CheckBox

Controalele RadioButton şi CheckBox

Deşi aspectul acestor controale este diferit de cel al butonului, din punct de vedere al programării obiectuale ele au aceeaşi clasă de bază. Vor fi însă declarate ca obiecte aparŢinând clasei RadioButton şi respectiv CheckBox.
Controlul de tip RadioButton este afişat sub forma unui cerc care permite utilizatorului să aleagă o singură optiune din mai multe posibile.
Controlul de tip CheckBox este afişat sub forma unei casete pătrate mici care poate avea două stări, selectată sau neselectată. Spre deosebire de butoanele radio, casetele nu sunt grupate, starea de selectare a uneia nefiind legată de starea altor casete folosite în fereastră.
Câteva dintre proprietătile controlului RadioButton sunt:

Appearance – permite trecerea de la forma standard la o reprezentare sub forma unui buton obişnuit. În acest al doilea caz, la selectarea butonului radio, butonul va ramâne apăsat;

AutoCheck – dacă această proprietate este true, la selectarea controlului este afişat un punct negru în interiorul lui iar dacă este false, punctul negru nu este afişat;
CheckAlign – prin intermediul acestei proprietăŢi, se poate indica modul de aliniere a textului asociat controlului în raport cu controlul însuşi. Valorile posibile sunt left, middle, sau right;

Checked – indică starea controlului. Dacă controlul este selectat, proprietatea are valoarea true;

Evenimentele specifice butonului radio sunt:

CheckChanged – este generat la schimbarea stării a unui buton radio. Acest eveniment va fi generat de două ori: odată pentru controlul care era selectat şi acum devine neselectat şi apoi încă odată pentru controlul care se selectează;
Click – este generat atunci cînd se selectează butonul cu mouse-ul (clic).
În mod similar şi controlul CheckBox va prezenta un set de proprietăti specifice, care suplimentar fată de cele ale butonului radio sunt:
CheckState – Spre deosebire de controlul RadioButton, care are doar 2 stări (marcat sau nemarcat), controlul CheckBox poate avea 3 stari: marcat, nemarcat şi nedeterminat (Checked, Unchecked şi Indeterminate). În starea nedeterminat, eticheta asociată controlului devine gri, pentru a specifica faptul că valoarea marcajului este nevalidă, sau, starea controlului nu are nici o semnificaŢie în circumstanta actuală.
ThreeState – dacă această proprietate este false, controlul nu poate intra in starea nedeterminat prin setarea proprietătilor, ci doar prin intermediul metodelor asociate.

Evenimentele specifice butonului CheckBox sunt:

CheckedChanged – este generat la modificarea stării de marcare a controlului (proprietatea Checked). Interesant este că la un control cu proprietatea ThreeState poziŢionată pe true, se poate întâmpla ca să se schimbe starea de marcare fără ca acest eveniment să se producă. Aceasta se întâmplă când starea controlului devine nedeterminată.
CheckedStateChanged – este generat la modificarea valorii proprietătii
CheckedState. Evenimentul este generat şi la trecerea în starea nedeterminat.

TEMA

1. Colorati panoul in verde si denumiti-l Calcule
2. Plasati un control Label cu textul setat “a=”
3. In dreptul controlulu Label plasati un control Textbox
4. Plasati dreapta sus un control Label cu textul setat “b=”
5. In dreptul controlulu Label plasati un control Textbox
6. Plasati un GroupBox pe panou
7. In GroupBox plasati patru controale RadioButton
8. In dreptul fiecaruia plasati un control Label cu numele unei operatii aritmetice
9. Plasati in afara GroupBox-ului doua butoane cu textul EXECUTA respectiv EXIT
10.Cand apasam butonul EXECUTA se va afisa rezultatul operatiei selectate
11. Cand apasam Exit se iese din aplicatie

Indicatii:
1. Pentru conversii folositi clasa Convert din care alegeti tipul la care faceti conversia.
2. Pentru afisare folositi clasa MessageBox
3. In afisare daca se doreste combinatii de mesaje si variabile de alt tip decat string se foloseste semnul +.
EX: int x=3;
MessageBox.Show(”Ana are”+x+”mere”);

SOLUTIE PROPUSA DE IULIAN:
Iulian Dita

private void button2_Click(object sender, EventArgs e)
{ Application.Exit(); }

private void button1_Click(object sender, EventArgs e)
{
int a, b, c, d, g; float f;
a=Convert.ToInt32(textBox1.Text);
b=Convert.ToInt32(textBox2.Text);
c =a+b;
d = a – b;
g = a * b;
f = a / b;
if(radioButton1.Checked==true) MessageBox.Show(“rezultat=”+d);
if(radioButton2.Checked==true) MessageBox.Show(“rezultat=”+c);
if(radioButton3.Checked==true) MessageBox.Show(“rezultat=”+g);
if(radioButton4.Checked==true) MessageBox.Show(“rezultat=”+f);
}
}

TEMA 2
Realizati un minitest care sa cuprinda trei intrebari:
1. Prima intrebare sa aiba patru variante de raspuns din care numai unul sa fie corect.
2. A doua intrebare sa aiba patru variante de raspuns din care doua sa fie corecte
3. A treia intrebare sa fie cu raspuns scurt
4. La apasarea butonului numit TRIMITE sa se afiseze daca s-a raspuns corect la toate cele 3 intrebari.

SOLUTIE DE DATA DE ADELINA SIMONA

Pentru ca la o rulare intrebarile sa nu ramana cu selectiile anterioare, scriem urmatoarea secventa:

public Form1()
{
InitializeComponent();
radioButton1.Checked = false;
radioButton2.Checked = false;
radioButton3.Checked = false;
radioButton4.Checked = false;
checkBox1.Checked = false;
checkBox2.Checked = false;
checkBox3.Checked = false;
checkBox4.Checked = false;
textBox1.Text = false;
}

La cele 3 intrebari, pentru aceasta solutie, raspunsurile corecte sunt “roman” al treilea buton din caseta de butoane si alegerile 2 si 3 la caseta cu checkboxuri.

private void button2_Click(object sender, EventArgs e)
{
int a, b, c, d, g; float f;
if (textBox1.Text.CompareTo(“romani”) == 0)
if (radioButton3.Checked == true)
if (checkBox1.Checked == false && checkBox2.Checked == true && checkBox3.Checked == true&& checkBox1.Checked == false )
MessageBox.Show(“Ai raspuns corect”);
}
else MessageBox.Show(“Gresit !!”);
}

Butonul de iesire:
private void button1_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void checkBox3_CheckedChanged(object sender, EventArgs e)
{

GroupBox/ Label/ LinkLabel/ TextBox

GroupBox/ Label/ LinkLabel/ TextBox

Controlul GroupBox

Este un control utilizat pentru a realiza grupări de controale. De regulă un astfel de control este folosit pentru a realiza gruparea mai multor controale din clasa RadioButton care trebuie să formeze un grup. Controlul GroupBox este afişat sub forma unui cadru dreptunghiular în interiorul căruia sunt incluse controalele care vor compune grupul. Astfel de controale pot fi utilizate însă şi pentru a evidenŢia grupuri de controale ale aplicaŢiei care îndeplinesc împreună o anumită functie. Dacă un set de controale sunt plasate în interiorul casetei de grupare, aceasta devine controlul părinte al fiecăruia dintre controale, în locul formei. Prin plasarea controalelor în interiorul casetei de grupare, un set de proprietăti ale acestora va putea fi modificat prin simpla modificare a proprietătii corespunzătoare pentru caseta de grupare.

Controalele Label şi LinkLabel

Sunt controale care în principiu afişează etichete pentru clarificarea functiei altor controale sau, respectiv, legături spre diferite adrese de internet. Apar ca texte afişate pe ecran (în cazul LinkLabel textul este subliniat). Câteva din proprietătile comune celor două controale, care pot fi modificate de utilizator sunt:
BorderStyle – specifică tipul chenarului care înconjoară controlul. Implicit, nu există chenar.

FlatStyle – specifică modul în care este afişat controlul.

Image – permite specificarea unei imagini (bitmap, icon, jpeg, etc) care va fi afişată în interiorul controlului.
ImageAlign – specifică pozitia imaginii afişate în raport cu marginile controlului.

Text – specifică textul afişat de către control.

TextAlign – specifică pozitia textului în raport cu marginile controlului.

Controlul TextBox

Controalele TextBox sunt probabil cele mai utilizate controale pentru interfeŢele intrare-ieşire. Prin modul lor de functionare permit introducerea sau afişarea unor tipuri de date diferite, permtând de asemenea introducerea parolelor. Deşi există două clase de astfel de controale (TextBox şi respectiv RichTextBox) ambele derivate din clasa TextBaseBox, în acest moment ne vom ocupa doar de controlalele standard, adică de clasa TextBox. Controalele de tip TextBox permit manipularea şirurilor de caractere folosind comenzile uzuale din Windows: copy, paste, delete, etc. Principalele proprietăŢi ale acestor controale sunt:
CausesValidation – dacă această proprietate este true, la primirea focusului controlul va genera două evenimente: Validating şi Validated. Aceste evenimente sunt utilizate pentru validarea datelor continute de control înainte de pierderea focusului.
CharacterCasing – specifică tipul literelor cu care sunt afişate textele în control: Lower – toate literele sunt mici, Normal – şi mici şi majuscule, respectiv Upper – toate literele sunt majuscule.
MaxLength – specifică numărul maxim de caractere a textului din control. Dacă valoarea acestei proprietăti este 0, lungimea textului este limitată doar de capacitatea de memorie a calculatorului.
Multiline – uzual, controlul afişează o singură linie de text. Prin setarea acestei proprietăŢi, controlul va fi capabil să afişeze mai multe linii.
PasswordChar – textul este afişat sub formă de parolă (stelute). Dacă proprietatea Multiline este true, această această proprietate nu functionează.

ReadOnly – dacă această proprietate este true, controlul va permite doar afişarea textelor, nu şi introducerea lor.
SelectedText – proprietatea permite accesul la zona din textul controlului care a fost selectată de operator.
SelectionLength – Lungimea zonei selectate în control.

SelectionStart – pozitia primului caracter din textul selectat în control.

Principalele evenimente generate de controlul TextBox:

Enter, GotFocus, Leave, Validating, Validated, LostFocus – Aceste evenimente sunt generate în ordinea în care au fost prezentate. Sunt aşa numitele evenimente de focus. Sunt generate ori de câte ori controlul de tip TextBox primeşte focusul, mai putin Validating şi Validated care se produc numai în cazul în care proprietatea CausesValidation = true.
KeyDown, KeyPress, KeyUp – Sunt aşa numitele evenimente de taste. Permit monitorizarea modificărilor produse în textul din control prin intermediul tastaturii. KeyDown şi KeyUp receptionează codul de scanare al tastei actionate (vezi unu). KeyPress receptionează în schimb codul ASCII al tastei.
Change – este generat ori de câte ori textul continut de control este modificat.

TEMA

1. Colorati panoul in verde si denumiti-l Interschimbare
2. Plasati un GroupBox pe panou si colorati in gri
3. In GroupBox stanga sus plasati un control Label cu textul setat “a=”
4. In dreptul controlulu Label plasati un control Textbox
5 In GroupBox dreapta sus plasati un control Label cu textul setat “b=”
6. In dreptul controlulu Label plasati un control Textbox
7. In GroupBox centru jos plasati un buton cu textul setat “ Interschimba”
8. Cand apasati butonul sa se realizeze interschibarea valorilor corespunzatoare lui a si b

Solutie

private void button1_Click(object sender, EventArgs e)
{
string c = textBox1.Text;
textBox1.Text = textBox2.Text;
textBox2.Text = c;
}

Controalele ListBox şi CheckedListBox

Controalele ListBox şi CheckedListBox
Controalele de acest tip sunt utilizate pentru a afişa un set de stringuri, din care unul sau mai multe pot fi selectate la un momentdat. Clasa ListBox oferă functionalitate atât controlului ListBox cât controlului ComboBox. Clasa CheckedListBox este derivată din aceasta şi adaugă fiecărui string din listă un control de tip CheckBox, utilizat pentru selectare.
Câtve din proprietătile furnizate de clasa ListBox sunt:

SelectedIndex – indică indicele bazat pe 0 a elementului selctat în listă, sau a primului element selctat în lista, în cazul selectiei multiple.
ColumnWidth – specifică lătimea coloanelor, în listele cu coloane multiple. Items – contine sub forma unei colectii toate elementele stocate în listă. Multicolumn – specifică numărul de coloane din listă.
SelectedIndices – o colectie care contine toti indicii elementelor selectate din listă.
SelectedItem – această proprietate contine elementul selectat în listă dacă selectia este simplă, respectiv primul elemen selectat din listă în cazul selectiei multiple.
SelectedItems – o colectie care contine elementele selectate din listă.
Sorted – dacă această proprietate este true, elementele vor fi afişate în listă în ordine alfabetică.
CheckedIndices – o colectie care contine indicii elementelor din listă care au caseta checkbox bifată su în stare nedeterminată (doar pentru CheckedListBox).
CheckedItems – o colectie care contine elementele din listă care au caseta checkbox bifată su în stare nedeterminată (doar pentru CheckedListBox).
CheckOnClick – dacă acaestă proprietate este true, starea unui element se schimbă când asupra lui se efectuează click.

Câteva din metodele clasei:

ClearSelected() – şterge toate selectiile (nu elementele selectatae!) din listă.

FindString() – caută primul string care începe cu şirul specificat ca parametru în lista.
GetSelected() – returnează o valoare care specifică dacă un element este selectat.
SetSelected() – setează sau şterge selectarea unui element.
GetItemChecked() – returnează o valoare care indică faptul că checkbox-ul asociat unui element este bifat (doar pentru CheckedListBox).
GetItemCheckState() – returnează o valoare care indică starea casetei checkbox asociată elementului (doar pentru CheckedListBox).
SetItemChecked() – setează starea casetei checkbox a elemenetului specificat într-una din stările posibile (doar pentru CheckedListBox).
SetItemCheckState()–Setează starea unui element (doar pentru CheckedListBox).

Câteva evenimente:

ItemCheck – se produce când starea de selectare a unui element se schimbă.

SelectedItemChanged – se produce la schimbarea indexului elementelor selectate.

Lucrarea de laborator

Uitilizati două controale GroupBox pentru care modificati proprietatea Text în Ingrediente disponibile, respectiv Ingrediente selectate, două controale CheckedListBox cu proprietatea Name Lst şi respectiv Ldr şi un control Button cu proprietatea Text ->. De asemenea, pentru lista din stânga setati proprietatea CheckOnClick la true, pentr a putea bifa elementele selectate. Se adăuga ingredientele în lista din stânga. Să adăugăm următoarele ingrediente: Faina, Lapte, Oua, Zahar, Lamai, Rom, Frisca, Vanilie, Stafide, Ciocolata, Zahar, Pudra, Drojdie, Gem, Cafea, Scortisoara. Aveti 2 posibilităti de adăugare: fie la prioprietatea Items a obiectului Lst, completând lista, fie prin cod, cu ajutorul unor instrucŢiuni de forma
… Lst.Items.Add(“Faina”);

La apăsarea butonului, se trec elementele selectate în lista din dreapta. Pentru aceasta se selectează cu dublu click butonul şi se editează functia:

private void button1_Click(object sender, EventArgs e)
{
if (Lst.CheckedItems.Count > 0)
{
Ldr.Items.Clear();
foreach (string item in Lst.CheckedItems)
{
Ldr.Items.Add(item.ToString());
}
for (int i = 0; i < Lst.Items.Count; i++) Lst.SetItemChecked(i, false);
}
}

EFECT : Se numără întâi elementele selectate în lista din stânga
(Lst.CheckedItems.Count). Dacă există elemente selctate, se şterge lista din dreapta. Apoi, fiecare element selctat în lista din stânga (foreach (string item in Lst.CheckedItems)) este adăugat (după convertirea la şir de caractere!) în lista din dreapta. Apoi, proprietatea Checked este resetată pentru toate obiectele din colecŢia listei din stânga.

TEMA
1. Afisati igredientele din stanga in ordine alfabetica.
2. Setati prin program un element.

Follow

Get every new post delivered to your Inbox.