Note that there are some explanatory texts on larger screens.

plurals
  1. POcurrent row returns null in datagridview c#
    text
    copied!<p>Can anyone tell me whats wrong in this code? when i try this i am getting null exception on current row</p> <pre><code>using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; namespace App { public static class General { private static BindingSource source; private static bool typing = false; private static DataGridView dgSuggest; public static int productID; private static ComponentFactory.Krypton.Toolkit.KryptonTextBox txtBox; /// &lt;summary&gt; /// To show the auto suggest /// &lt;/summary&gt; /// &lt;param name="parent"&gt;Windows.Form&lt;/param&gt; /// &lt;param name="tBox"&gt;krypton TextBox&lt;/param&gt; /// &lt;param name="dataSource"&gt;Datasource for the Suggestion&lt;/param&gt; /// &lt;param name="indexes"&gt;Indexes to hide in suggestion&lt;/param&gt; public static void autoSuggest(Form parent,ComponentFactory.Krypton.Toolkit.KryptonTextBox tBox,BindingSource dataSource,int[] indexes) { source = dataSource; txtBox = tBox; dgSuggest = new DataGridView(); parent.Controls.Add(dgSuggest); dgSuggest.BringToFront(); dgSuggest.AllowUserToAddRows = false; dgSuggest.AllowUserToDeleteRows = false; dgSuggest.Location = new System.Drawing.Point(txtBox.Location.X,txtBox.Location.Y + txtBox.Height); dgSuggest.Width = txtBox.Width; dgSuggest.ReadOnly = true; dgSuggest.RowHeadersVisible = false; dgSuggest.DataSource = source; dgSuggest.SelectionMode = DataGridViewSelectionMode.FullRowSelect; dgSuggest.Columns[0].Visible = false; dgSuggest.Columns[2].Visible = false; dgSuggest.Columns[3].Visible = false; dgSuggest.Columns[4].Visible = false; dgSuggest.Columns[5].Visible = false; dgSuggest.Columns[6].Visible = false; dgSuggest.Columns[7].Visible = false; dgSuggest.Columns[8].Visible = false; dgSuggest.Columns[9].Visible = false; dgSuggest.Hide(); dgSuggest.Columns[1].Width = txtBox.Width - 20; txtBox.KeyDown += new KeyEventHandler(txtBox_KeyDown); txtBox.KeyPress += new KeyPressEventHandler(txtBox_KeyPress); txtBox.TextChanged += new EventHandler(txtBox_TextChanged); } private static void txtBox_KeyDown(object sender, KeyEventArgs e) { if (dgSuggest.Visible == false) { dgSuggest.Visible = true; } if (e.KeyCode == Keys.Down) { int rowIndex = 0; if (dgSuggest.Rows.Count &gt; 0) { if (dgSuggest.CurrentRow.Index &lt; dgSuggest.Rows.Count - 1) { rowIndex = dgSuggest.CurrentRow.Index + 1; } dgSuggest.ClearSelection(); dgSuggest.CurrentCell = dgSuggest.Rows[rowIndex].Cells[1]; dgSuggest.Rows[rowIndex].Selected = true; } } else if (e.KeyCode == Keys.Up) { int rowIndex = 0; if (dgSuggest.Rows.Count &gt; 0) { if (dgSuggest.CurrentRow.Index &gt; 0) { rowIndex = dgSuggest.CurrentRow.Index - 1; } else { rowIndex = dgSuggest.Rows.Count - 1; } dgSuggest.ClearSelection(); dgSuggest.CurrentCell = dgSuggest.Rows[rowIndex].Cells[1]; dgSuggest.Rows[rowIndex].Selected = true; } } else if (e.KeyCode == Keys.Enter) { DataGridViewRow row = dgSuggest.CurrentRow; productID = Convert.ToInt32(row.Cells[0].Value); txtBox.Text = Convert.ToString(row.Cells[1].Value); dgSuggest.Hide(); } else if (e.KeyCode == Keys.Back) { if (txtBox.Text != "") { txtBox.Text = txtBox.Text.Substring(0, txtBox.Text.Length - 1); } } else if (e.KeyCode == Keys.Delete) { txtBox.Text = ""; } e.Handled = true; } private static void txtBox_KeyPress(object sender, KeyPressEventArgs e) { if (char.IsControl(e.KeyChar) == false) { txtBox.Text = txtBox.Text + Convert.ToString(e.KeyChar); typing = true; } if(e.KeyChar == Convert.ToChar(Keys.Back)) { typing = true; } e.Handled = true; } private static void txtBox_TextChanged(object sender, EventArgs e) { if (typing) { if (txtBox.Text == "") { source.Filter = ""; } else { MessageBox.Show(source.Filter); source.Filter = "Name LIKE '"+txtBox.Text+"%'"; } } txtBox.SelectionStart = 0; txtBox.SelectionLength = txtBox.Text.Length; } } } </code></pre> <p>when i call this method on another form like the following</p> <pre><code>BindingSource source = new BindingSource(); source.DataSource = ies.tblProducts; General.autoSuggest(this, txtProduct,source,new int[]{0}); </code></pre> <p>I am getting current row null exception when i press the down arrow key </p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload