[ NisamJa @ 27.11.2009. 12:30 ] @
Kako da primenim validaciju textBox-a na sve redove u odredjenim kolonama u dataGridView? (nema unosa novih redova, tabela je fiksna, samo se vrednosti u poljima edituju.)

Imam access bazu sa puno tabela. Nazive tabela izlistavam u listBox-u, pa user bira tabelu koju treba da edituje. Tabele su sa razlicitim kolonama, razlicite velicine, a izabrana tabela se prikazuje u dataGridView1.

dataGridView punim izabranom tabelom iz comboBox-a.

Svaka tabela ima id(autoincrement), Column1(text, user ne treba da je edituje) i različit broj ostalih kolona koje su sve tipa ’text’ ali gde bi korisniku trebalo dozvoliti da unosi samo cifre, a ne i slova, i narano, dozvoliti da koristi ’backspace’.

Našla sam kod za textBox, ali ne znam kako to da primenim na moje kolone u dataGridView1 (od treće do poslednje kolone)

Code:
private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
  {
    if ( !( char.IsDigit( e.KeyChar ) || char.IsControl( e.KeyChar ) ) )
     {                
       e.Handled = true;            
     }
}
[ AMD guy @ 27.11.2009. 12:46 ] @
Pa datagridview ima selected cell property
http://msdn.microsoft.com/en-u...atagridview.selectedcells.aspx

Probaj sa time nesto da uradiš.
[ NisamJa @ 27.11.2009. 13:10 ] @
Hvala ti, ali ja to ne uspevam da primenim. Nekako su mi uvek uputstva sa MSDN-a štura i nejasna, možda zato što sam početnik pa se saplićem preko stvari koje su drugima banalne.

dataGridView1.SelectedCell mi baš treba, ali nemam pojma kako da ga stavim u vezu sa KeyPress dogadjajem?!


Nasla sam odgovor! evo link, ako nekome treba
[url]http://social.msdn.microsoft.com/Forums/en-IE/winformsdatacontrols/thread/ea4f5fce-7363-4bab-962b-7469a3886311[/url]

Ovo dodje tamo gde se dataGridView1 puni podacima:
Code:

this.dataGridView1.EditingControlShowing += new DataGridViewEditingControlShowingEventHandler(dataGridView1_EditingControlShowing);


A ovo je kod za sprečavanje unošenja bilo kojih znakova sem cifara:
Code:

 void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)

        {

            if (e.Control is TextBox)

            {

                TextBox tb = e.Control as TextBox;

                tb.KeyPress += new KeyPressEventHandler(tb_KeyPress);

            }

        }

 

        void tb_KeyPress(object sender, KeyPressEventArgs e)

        {

              if (!(char.IsDigit(e.KeyChar)))

            {

                if (e.KeyChar != '\b') //allow the backspace key

                {

                    e.Handled = true;

                }

            }

        }


[Ovu poruku je menjao NisamJa dana 27.11.2009. u 15:41 GMT+1]

A ovako ne dam da se menjaju prve dve kolone:
Code:

 this.dataGridView1.Columns[0].ReadOnly = true;
 this.dataGridView1.Columns[1].ReadOnly = true;



[Ovu poruku je menjao NisamJa dana 27.11.2009. u 15:52 GMT+1]