gadNY Posted May 11, 2009 at 06:02 PM Report #263074 Posted May 11, 2009 at 06:02 PM eu tenho uma datagridview a obter registos de uma base de dados, mas a datagrid tem varias rows cada uma equivale a um resgisto, ou seja, eu queria que apenas permitisse seleccionar uma row, mas nao estou a ver qual e a propriedade :x alguem ajuda ? 😕
jpaulino Posted May 11, 2009 at 06:05 PM Report #263076 Posted May 11, 2009 at 06:05 PM Vê a propriedade SelectionMode e define como FullRowSelect
gadNY Posted May 12, 2009 at 09:32 AM Author Report #263269 Posted May 12, 2009 at 09:32 AM Vê a propriedade SelectionMode e define como FullRowSelect Acho que e mesmo isso, mas da para seleccionar duas ou mais na mesma, mas apenas uma fica com a seta atras, ele vai detectar apenas essa nao e ? :/ e a propriedade para ir buscar a linha seleccionada e a mesma ou sera a selectedrows ?
TheDark Posted May 12, 2009 at 09:40 AM Report #263272 Posted May 12, 2009 at 09:40 AM O que precisas é de colocar a propriedade MultiSelect a false. Desaparecido.
gadNY Posted May 12, 2009 at 09:48 AM Author Report #263278 Posted May 12, 2009 at 09:48 AM O que precisas é de colocar a propriedade MultiSelect a false. ja esta direito, obrigado 😛 era mesmo isso, agora so preciso da propriedade para ir buscar a row que esta seleccionada :x
TheDark Posted May 12, 2009 at 09:50 AM Report #263279 Posted May 12, 2009 at 09:50 AM Consegues seleccionar mais que uma linha? Acabei de testar aqui e funcionou bem. Desaparecido.
gadNY Posted May 12, 2009 at 09:52 AM Author Report #263281 Posted May 12, 2009 at 09:52 AM Consegues seleccionar mais que uma linha? Acabei de testar aqui e funcionou bem. Nao, ja esta certo, obrigado : D agora falta obter os dados dessa linha :X
TheDark Posted May 12, 2009 at 09:54 AM Report #263285 Posted May 12, 2009 at 09:54 AM DataGridView dgv; //... string firstCellValue = dgv.SelectedRows[0].Cells[0].Value.ToString(); Desaparecido.
gadNY Posted May 12, 2009 at 10:07 AM Author Report #263290 Posted May 12, 2009 at 10:07 AM DataGridView dgv; //... string firstCellValue = dgv.SelectedRows[0].Cells[0].Value.ToString(); MessageBox.Show(datagridpesq.Rows[0].Cells[0].Value.ToString()); com isto ele mostra o valor que esta na 1 row e 1 cell, mas eu preciso e que faca isso para todas as existentes, para isso e preciso um count as rows e cells certo ?
amiloM1425 Posted May 12, 2009 at 02:33 PM Report #263421 Posted May 12, 2009 at 02:33 PM Certo. Terás de fazer um for para correres todas as linhas. As colunas à partida saberás quantas são portanto para cada coisa que queres acedes ao Ãndice correspondente da coluna. Exemplo: for(int i=0; i<dgv.SelectedRows.Count;i++) {   string a = dgv.SelectedRows[i].Cells[0].Value.ToString();   string b = dgv.SelectedRows[i].Cells[2].Value.ToString(); }
gadNY Posted May 12, 2009 at 02:51 PM Author Report #263426 Posted May 12, 2009 at 02:51 PM int Colunas = dr6.FieldCount; Â Â Â Â Â Â Â Â for (int i = 0; i < Colunas; i++) Â Â Â Â Â Â Â Â { Â Â Â Â Â Â Â Â Â Â MessageBox.Show(datagridpesq.Rows[datagridpesq.SelectedRows[0].Index].Cells[i].Value.ToString()); Â Â Â Â Â Â Â Â Â Â conn.Close(); Â Â Â Â Â Â Â Â } eu ja consegui isso com isto, o meu problema agora e enviar os dados para as texts e combos que estao noutro form, ja esta a ir para o outro form com os objectos enabled, so falta mesmo preencher :x
amiloM1425 Posted May 12, 2009 at 02:58 PM Report #263428 Posted May 12, 2009 at 02:58 PM Não estás a conseguir passar os dados de um form para ou outro, é isso? Podes passar os dados no construtor do formulário. Tipo isto: Form2 frm2 = new Form2(a,b,c) em que a,b e c são os valores que foste buscar à tua tabela No outro form no construtor ficas com isto public Form2(string a, string b, string c) { this.a = a; this.b = b; this.c = c; } No método Load do formulário fazes algo como: txtA.Text = a; txtB.Text = b; txtC.Text = c;
gadNY Posted May 12, 2009 at 03:30 PM Author Report #263442 Posted May 12, 2009 at 03:30 PM sim, eu tenho isto para inserir os dados na grid, a messagebox e so para ver se esta a funcionar bem, e vai para o outro form e mete os objectos enabled, falta preencher os dados :x SqlConnection conn = new SqlConnection(connectionString);         conn.Open();         SqlCommand cmd = new SqlCommand("SELECT nome,idade,telefone,morada FROM alunos WHERE nome like @nome", conn);         cmd.Parameters.Add("@nome", SqlDbType.NVarChar).Value = datagridpesq.SelectedRows.ToString();         SqlDataReader dr6 = cmd.ExecuteReader();         int Colunas = dr6.FieldCount;         for (int i = 0; i < Colunas; i++)         {           MessageBox.Show(datagridpesq.Rows[datagridpesq.SelectedRows[0].Index].Cells[i].Value.ToString());           conn.Close();         }         this.Hide();         Alunos alunos = new Alunos();         alunos.Show();         alunos.txt_idade.Enabled = true;         alunos.txt_morada.Enabled = true;         alunos.txt_nome.Enabled = true;         alunos.txt_telefone.Enabled = true; e queria passar estes valores para as respectivas texts do outro form :/ nao estou mesmo a perceber a lógica :x
Betovsky Posted May 12, 2009 at 03:33 PM Report #263445 Posted May 12, 2009 at 03:33 PM Fazes como o amilo te disse. Mandas pelo construtor. Em vez de ser Form2 irá ser Alunos Já agora estás a fazer multiplos Closes à conecção. "Give a man a fish and he will eat for a day; Teach a man to fish and he will eat for a lifetime. The moral? READ THE MANUAL !" Sign on a computer system consultant's desk
gadNY Posted May 12, 2009 at 05:49 PM Author Report #263517 Posted May 12, 2009 at 05:49 PM ja consegui passar, obrigado : )
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now