Tag: datagridview

如何在DataGridViewComboBox中显示枚举类型成员?

为了在DatagridViewComboBox中显示ReadAccess枚举成员,我还需要做些什么? ReadDataGridViewComboBoxColumn.Items.Clear(); ReadDataGridViewComboBoxColumn.Items.AddRange(ReadAccess.None, ReadAccess.Allowed); ReadDataGridViewComboBoxColumn.ValueType = typeof(ReadAccess); 这是关于DataGridView的设计器生成的代码: this.rolesDataGridView.AutoGenerateColumns = false; this.rolesDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.TableNameDataGridViewTextBoxColumn, this.ReadDataGridViewComboBoxColumn, this.WriteDataGridViewComboBoxColumn, this.ReadCodeDataGridViewComboBoxColumn, this.ProcessDataGridViewCheckBoxColumn, this.AdministrateDataGridViewCheckBoxColumn}); this.rolesDataGridView.DataSource = this.bsTablePermissions; 最后,在InitializeComponent(); ,我正在设置DataGridView的DataSource: this.rolesDataGridView.DataSource = this.RoleTablePermissions; // a bindingsource list

在DataGridView中显示2d数组

我有一个2D数组。 我想在我的DataGridView打印数组,但它会抛出一个错误: [参数OutOfRangeException未处理] 这是我的代码 for (int j = 0; j < height; j++) { for (int i = 0; i < width; i++) { dataGridView1[i, j].Value = state[i, j].h; //state[i, j].h this is my array dataGridView1[i, j].Style.BackColor pixelcolor[i,j]; dataGridView1[i, j].Style.ForeColor = Color.Gold; } }

DataGridView中的SQL数据

嘿伙计们,我有一个应用程序,我想在DataGridView中显示来自sql db的一些数据…我现在在DataGridView中显示数据但是这里是我的问题…我怎样才能使用自定义标题标题,因为我不希望SQL列标题用于DataGridView列标题。 此外,我想要它,以便当用户双击一行时,它将从该行打开filePath值…我还希望能够指定列的宽度。 以下是表格的布局方式。 SQL表:Row_ID(我不希望在网格中显示),PartNumber,CMMNumber,CreatedOn,FilePath,RacfId,currTime 数据网格视图所需格式:部件号,CMM号,创建时间,路径,用户ID,已查看 当前代码 – 它获取数据(全部,包括Row_ID)并使用sql列名称作为数据网格视图列的名称,它也只使用默认列宽。 private void NewAlert_Load(object sender, EventArgs e) { string connString = “Server=FRXSQLDEV;Database=MyDB;User Id=ID;Password=Password;”; string query = “SELECT * FROM CMMReports WHERE RacfId IS NULL;”; SqlDataAdapter dAdapter = new SqlDataAdapter(query, connString); SqlCommandBuilder cBuilder = new SqlCommandBuilder(dAdapter); DataTable dTable = new DataTable(); dAdapter.Fill(dTable); //BindingSource to sync DataTable and DataGridView […]

datagridview使用带有列href链接的数据表

我正在试图弄清楚如何在我的c#winform项目中获得一个有界的datagridview列,以显示为href链接。 问题是链接点击有效,但任何普通用户都不会意识到他们可以单击该字段,因为它显示为字符串。 我需要字段显示为蓝色,带下划线,鼠标指针变成手……等等。 当我在Datagrid中使用数据集时,我能够完成此任务。 我去了设计师并选择了“添加列”并将其添加为“DataGridViewLinkColumn”。我最近更改了项目以使用数据表,我意识到这些字段不再显示为可点击(如果我点击它确实有效)。 任何理想如何相对轻松地完成这一任务? 我搜索过,有点惊讶,我似乎无法找到一个简单的解决方案。

将价值从一种forms传递到另一种forms(C#)

我的程序中有一个搜索表单。 当用户双击搜索表单上的(dgv)单元格时,我希望程序关闭该表单并跳转到主表单上的项目。 我这样做是通过识别具有唯一ID的每个项目。 我正在尝试将行id的值传递给另一个表单。 问题是,它说我每次都传递零值。 但是当我在搜索表单上插入一些消息框时,它表示整数’id’已成功分配给主窗体上的变量: public int CellDoubleClickValue { get; set; } public int CellDoubleClickValue { get; set; } 这是我的代码: 搜索表格: private int id; private void searchdgv_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { this.rowIndex1 = e.RowIndex; this.id = Convert.ToInt32(this.searchdgv.Rows[this.rowIndex1].Cells[“id”].Value); invmain inv = new invmain(); inv.CellDoubleClickValue = this.id; this.DialogResult = DialogResult.OK; this.Close(); //MessageBox.Show(inv.CellDoubleClickValue.ToString()); //Above, it shows it […]

什么是更好的使用:DataGrid或ListView用于显示大量数据?

我想在表格中显示> 50000行。 哪个是最好的控件:DataGrid或ListView(在详细信息视图中)? 哪些控件具有更好的性能?

c#窗体格式DataTable with Image列排序

我有DataGridView,我使用DataTables设置datagridview的DataSource。 DataTable dt = new DataTable(); dt.Columns.Add(“Image”,typeof(Bitmap)); dt.Columns.Add(“Col2”, typeof(string)); dt.Columns.Add(“Col3”, typeof(string)); dt.Columns.Add(“Col4”, typeof(string)); dt.Columns.Add(“Col5”, typeof(string)); int currentrow = 0; foreach (Dev d in Devs) { dt.Rows.Add(dt.NewRow()); Bitmap bmp = Test(d); dt.Rows[currentrow][0] = bmp; dt.Rows[currentrow][1] = d .ID; dt.Rows[currentrow][2] = d .Name; dt.Rows[currentrow][3] = d .Country; dt.Rows[currentrow][4] = d .State; currentrow++; } datagridview.DataSource = dt; 我的列类型的字符串,这个代码排序,但我想基于图像排序。 […]

为什么RowPrePaint在所有内容之上,我该如何改变它?

在我构建应用程序时,由于使用了RowPrePaint我遇到了一些问题。 无论代码执行的顺序如何,事件似乎都粘贴在所有内容之上。 我有一个问题,细胞工具提示会在它下面; 我不得不找到一种完全不同的方法来传达细胞的文本。 现在我只是试图显示一个消息框,如果我的If语句不符合,但即使这样也不会显示,除非用户按下Alt键(我已通过关闭并再次运行代码进行检查)。 所以我的问题是为什么RowPrePaint事件将自己置于一切之上并且有没有办法在不将代码移动到cellformatting事件的情况下改变它? 提前致谢。 我在下面包含了我的if语句,但我知道代码本身不是问题。 Dim RSScon As New SqlClient.SqlConnection(“ConnectionString”) Dim cmd As New SqlCommand(“SELECT Comment FROM StepBackTable WHERE Retsch_ID = ‘” & Convert.ToInt32(DataGridView1.Rows(rowindex).Cells(0).Value) & “‘ AND Col_index = ‘” & Convert.ToInt32(columnindex) & “‘;”, RSScon) Dim Rdr_Info As SqlDataReader RSScon.Open() Rdr_Info = cmd.ExecuteReader(CommandBehavior.Default) If Rdr_Info.HasRows Then While Rdr_Info.Read() ViewComForm.Show() ViewComForm.TextBox1.Text = Rdr_Info(“Comment”) […]

将datagridView保存到sql数据库中

首次将datagrid保存到数据库感谢任何帮助。 我用这种方式填充dataGrid: private void FillGrid1() { frmEditovat frm2 = new frmEditovat(this); DataTable DT = null; DataRow newRow; int pTypNastaveniaID = 0; string pNazov = “”, pHodnota = “”; DataConnector_My dataConnector = new DataConnector_My(mDataRoot.ConnectCentrum.ConnectionString); try { dataConnector.Init(mDataRoot.ConnectCentrum); DT = dataConnector.Get_Nastavenia(); /* Odstranim zdroj pre Grid. Musi byt koli triedeniu gridu. */ dataGridView1.DataSource = null; /* Smazanie […]

将多个DataRows连接到一个DataRow中

我使用.NET 3.5在C#中编写它。 我有一个System.Data.DataSet对象,其中包含一个使用以下模式的DataTable: Id : uint AddressA: string AddressB: string Bytes : uint 当我运行我的应用程序时,让我们说DataTable充满了以下内容: 1 192.168.0.1 192.168.0.10 300 2 192.168.0.1 192.168.0.20 400 3 192.168.0.1 192.168.0.30 300 4 10.152.0.13 167.10.2.187 80 我希望能够查询这个DataTable,其中AddressA是唯一的,并且字节列被加在一起(我不确定我是否正确地说)。 从本质上讲,我想得到以下结果: 1 192.168.0.1 1000 2 10.152.0.13 80 我最终希望将这个结果放在一个可以绑定到DataGrid的DataTable中,我需要每5秒左右更新/重新生成一次这个结果。 我该怎么做呢? DataTable.Select()方法? 如果是这样,查询是什么样的? 是否有替代/更好的方法来实现我的目标? 编辑:我没有数据库。 我只是使用内存中的DataSet来存储数据,因此纯SQL解决方案在这里不起作用。 我试图找出如何在DataSet本身内完成它。