Tag: datagridview

如何在更新其列时挂起DataGridView

在更新其列时,如何暂停.NET DataGridView显示任何内容? 这是我目前的代码。 它工作正常,但在foreach循环中它很慢; 你可以看到,当添加每列时,水平滚动条会慢慢增长。 我自己构建UI列,因为我不想出于各种原因使用dataGridView1.AutoGenerateColumns。 // Disconnect and reset DataGridView dataGridView1.DataSource = null; dataGridView1.SuspendLayout(); dataGridView1.Columns.Clear(); // Get data from SQL DataTable dt = new DataTable(); SqlDataAdapter adapter = new SqlDataAdapter(“select * from employeehist”, conn); adapter.Fill(dt); // Build DataGridView columns foreach (DataColumn c in dt.Columns) { DataGridViewTextBoxColumn col = new DataGridViewTextBoxColumn(); col.SortMode = DataGridViewColumnSortMode.NotSortable; col.DataPropertyName […]

更新或插入另一个表单时,C#刷新DataGridView

我有两种forms, form A和form B , form A允许用户插入和更新学生信息。 form b只是一个DataGridView和按钮。 当我在form A上插入学生时,然后我转到form B ,新学生没有在DataGridView上显示,如果我重新运行该程序,新学生将出现在form B 。 我尝试在表格b上使用此按钮 datagridview1.refresh(); datagridview1.update(); 但它仍然无法正常工作。 编辑: 我的插入工人的代码 cmd = new OleDbCommand(“insert into FWINFOS (ID,Name,Gender,DateOfBirth,Race,WorkingPlace,PassportNO,DateOfExpire,[Position],Photo) values(‘” + textBox5.Text + “‘,'” + textBox1.Text + “‘,'” + textBox2.Text + “‘,'” + dateTimePicker1.Value + “‘,'” + textBox3.Text + “‘,'” + textBox4.Text + “‘,'” + textBox6.Text […]

数据将枚举属性绑定到网格并显示描述

这是一个类似于如何将自定义枚举描述绑定到DataGrid的问题 ,但在我的情况下,我有多个属性。 public enum ExpectationResult { [Description(“-“)] NoExpectation, [Description(“Passed”)] Pass, [Description(“FAILED”)] Fail } public class TestResult { public string TestDescription { get; set; } public ExpectationResult RequiredExpectationResult { get; set; } public ExpectationResult NonRequiredExpectationResult { get; set; } } 我将BindingList 绑定到WinForms DataGridView(实际上是DevExpress.XtraGrid.GridControl,但通用解决方案将更广泛适用)。 我想要出现描述而不是枚举名称。 我怎么能做到这一点? (class / enum / attributes没有约束;我可以随意更改它们。)

在DataGridView中确定单元格位置

给定特定的行号和列索引,如何计算DataGridView中的单元格位置(IE:Location.Point)? 我需要单元格位置的原因是我可以在单元格内放置一个按钮以允许文件夹浏览(datagridview显示文件夹路径)。 关于如何实现这种欢迎的替代建议。

如何在绑定到链接到EF4实体的绑定源时对DataGridView进行排序

我有一个链接到BindingSource的DataGridView 。 我的BindingSource链接到一个IQueryable实体列表: public void BindTo(IQueryable elements) { BindingSource source = new BindingSource(); source.DataSource = elements; bindingNavigator1.BindingSource = source; dataGridView1.DataSource = source; } 我希望我的用户能够点击网格标题来对数据进行排序 – 努力使其发挥作用。 可能吗? 如果是这样,我该怎么办?

DataGridViewvalidation和更改单元格值

我想在validation时操作DataGridView中的单元格,这样如果用户输入的值对数据库无效,但很容易转换为有效数据,程序会将值更改为合适的值。 我可以正确validation我的值,但当我尝试将其更改为有效的东西时,我得到一个DataError。 这是我的代码: private void unit_List_2_GroupsDataGridView_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) { Console.WriteLine(“Validating”); DataGridViewColumn col = this.unit_List_2_GroupsDataGridView.Columns[e.ColumnIndex]; DataGridViewCell cell = this.unit_List_2_GroupsDataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex]; if (col == this.batchDataGridViewTextBoxColumn && this.unit_List_2_GroupsDataGridView.IsCurrentCellInEditMode) { Console.WriteLine(” Batch Column”); DataRow[] rows = label_EntryDataSet.viewJobBatchList.Select(String.Format(“Job={0} AND Display='{1}'” , comboBox1.SelectedValue, e.FormattedValue)); if (rows.Length == 1) { Console.WriteLine(” Auto Completed item from list: {0}”, rows[0][“Batch”]); //e.Cancel = true; cell.Value […]

在datagridview中搜索并过滤它

我有一个关于这个代码的问题,我使用bindingsource来显示数据,这个代码只在我在datagridview中搜索时选择行。 我想知道如何过滤搜索数据。 private void button1_Click(object sender, EventArgs e) { string searchValue = textBox1.Text; dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; try { foreach (DataGridViewRow row in dataGridView1.Rows) { if (row.Cells[2].Value.ToString().Equals(searchValue)) { row.Selected = true; break; } } } catch (Exception exc) { MessageBox.Show(exc.Message); } }

如何在DataGridView中将行显示为列?

我正在尝试使用VS 2008中的datagridview显示从sql数据库中检索到的数据集。但我需要垂直而不是水平显示数据。 这就是我一开始就做的。 con.Open(); SqlCommand cmd = new SqlCommand(“proc_SearchProfile”, con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(“@scute_id”, SqlDbType.VarChar, (10)).Value = val; SqlDataAdapter adapt = new SqlDataAdapter(cmd); DataSet dset = new DataSet(); adapt.Fill(dset, “Profile”); this.dataGridView1.DataSource = dset; this.dataGridView1.DataMember = “Profile”; 我搜索并阅读了一些线程,但没有一个工作。 任何人都可以帮我在垂直数据网格视图中显示检索到的数据吗?

更快捷地将csv读取到网格

我在Windows Forms .NET 3.5中有以下内容 它适用于记录小于10,000的csv,但对于30,000以上的记录则较慢。 输入csv文件可以在1 – 1,00,000条记录之间进行任何记录 目前使用的代码: /// /// This will import file to the collection object /// private bool ImportFile() { try { String fName; String textLine = string.Empty; String[] splitLine; // clear the grid view accountsDataGridView.Rows.Clear(); fName = openFileDialog1.FileName; if (System.IO.File.Exists(fName)) { System.IO.StreamReader objReader = new System.IO.StreamReader(fName); do { textLine = […]

DataGridViewComboBoxColumn在第一次单击时不会打开下拉列表

在任何人将此标记为重复之前,请注意这与此处和此处提出的问题不同。 如果DataGridViewComboBoxColumn有两个或更多DataGridViewComboBoxColumn ,其中一个下拉列表当前处于打开状态,则单击其他列的下拉按钮不会打开该下拉列表。 相反,你仍然需要点击两次。 首次单击会隐藏已打开的下拉列表,第二次单击实际上会打开您单击的下拉列表。 请注意,当EditOnEnter模式为ON时,需要两次单击; 否则你必须执行三次点击才能完成这项工作。 我也尝试了ContentClick事件,没有任何好处。 那么当我的DataGridViewComboBoxColumn中有多个DataGridViewComboBoxColumn时,如何使用一键操作? 更新 以防万一有人想要重现它,这是一个过程: 创建一个新的WinForms C#项目。 转到Form1的代码并将其粘贴到InitializeComponent行之后的构造函数中: DataGridView dgv = new DataGridView(); DataGridViewComboBoxColumn col1 = new DataGridViewComboBoxColumn(); DataGridViewComboBoxColumn col2 = new DataGridViewComboBoxColumn(); dgv.Columns.AddRange(new DataGridViewColumn[] { col1, col2 }); dgv.Dock = DockStyle.Fill; dgv.EditMode = DataGridViewEditMode.EditOnEnter; col1.Items.AddRange(new object[] { “Cat”, “Dog”, “Elephant”, “Lion” }); col2.Items.AddRange(new object[] { “Duck”, “Hen”, “Crow”, […]