标签: datagridview

无法更改DataGridViewComboBox值

我有一个DataGridView,我从LINQ查询填充.其中一列是FK,所以我添加了一个ComboBox列来显示这个字段,显示正常.

我遇到的问题是它不会让我更改ComboBox的值,因为它的行为就像它被锁定一样.我检查了DGV和Column的ReadOnly属性,两者都是假的.

任何人都可以解释我所缺少的东西吗?

填充DGV的代码如下:

    private void PopulateForm()
    {
        DBDataContext db = new DBDataContext();

        var eventTypes =
            from evt in db.EVENT_TYPEs
                .Where(a => a.Omit == false)
                .OrderBy(a => a.EventType)
            select new
            {
                EventTypeID = evt.EventTypeID,
                EventType = evt.EventType,
                UpdateToStatusID = evt.UpdateToStatusID,
                AttachmentAllowedYn = evt.AttachmentAllowedYn,
                AttachmentRequiredYn = evt.AttachmentRequiredYn,
                CommentRequiredYn = evt.CommentRequiredYn
            };

        var statuses =
            from sts in db.STATUS
                .Where(a => a.Omit == false)
            select new
            {
                StatusID = sts.StatusID,
                Status = sts.TechreqStatus
            };

        DataGridView dgv = this.dgvEventTypes;
        DataGridViewColumn col;

        dgv.AutoGenerateColumns = …
Run Code Online (Sandbox Code Playgroud)

c# datagridview winforms

1
推荐指数
1
解决办法
559
查看次数

DataGridView中的TimeSpan选取器允许超过24小时

我需要一种方法来创建TimeSpan时间选择器列,允许超过24小时.现在,我得到了一个从DateTimePicker派生的TimePicker,但在24之后,它又回到了零.我没有找到改变它的行为的方法.

请帮忙.

谢谢!

c# timespan datagridview winforms

1
推荐指数
1
解决办法
1934
查看次数

无需绑定即可将DataTable Row添加到DataGridView

我有一个预定义的DataGridView,我需要从DataTable添加行而不需要数据绑定.我试图以DataGridView.Rows.Add()编程方式使用该方法,但我不知道DataTable的列名称.DataTable中的列与DataGridView的顺序相同,但如何在不知道列名的情况下将它们添加到DataGridView中?

c# datatable datagridview winforms

1
推荐指数
1
解决办法
3万
查看次数

消失的代码?

我正在开发一个项目,我想根据dataGridView中的选择加载信息.我在表单的设计器中创建了一个dataGridView,我添加了这一行:

this.dataGridView1.SelectionChanged += methodToBeCalled;
Run Code Online (Sandbox Code Playgroud)

这一切都很好,但我有一个讨厌的问题.大多数时候,当我开始申请时,选择一行后没有任何事情发生.然后,当我查看我的代码时,代码行完全消失了.

首先我认为有人提交了一些代码,但即使我不更新它也会消失.

消失的代码可能是什么原因(错误/视觉工作室设计)?我该怎么办呢?

c# events designer datagridview

1
推荐指数
1
解决办法
535
查看次数

动态创建的datagridview单元格单击事件不起作用

我正在动态创建dgv,我必须在其单元格单击上创建一个事件,我该怎么做?现在,当我创建cellclick事件时,它什么也不会触发。

制作dgv的代码:

               dataGridView2 = new DataGridView();

                DataGridViewColumn col1 = new DataGridViewImageColumn
                {
                    ImageLayout = DataGridViewImageCellLayout.Stretch
                };

                DataGridViewColumn col2 = new DataGridViewImageColumn
                {
                    ImageLayout = DataGridViewImageCellLayout.Stretch
                };

                DataGridViewColumn col3 = new DataGridViewTextBoxColumn();
                DataGridViewColumn col4 = new DataGridViewLinkColumn();
                DataGridViewColumn col5 = new DataGridViewTextBoxColumn();
                DataGridViewColumn col6 = new DataGridViewTextBoxColumn();
                DataGridViewColumn col7 = new DataGridViewTextBoxColumn();

                col1.HeaderText = "TPM Image";
                col1.Name = "image_tpm";
                col1.Width = 60;

                col2.HeaderText = "Find Image";
                col2.Name = "image_thefind";
                col2.Width = 60;

                col3.HeaderText = "Name";
                col3.Name = "name";
                col3.Width = 150; …
Run Code Online (Sandbox Code Playgroud)

.net datagridview c#-4.0

1
推荐指数
1
解决办法
2048
查看次数

Winform C#Datagridview绘图标题

我想使用c#在Windows窗体中自定义我的datagridviews.我想要做的是使用我制作的渐变绘制datagrid标题:

public void Colorear_Barra_abajo(object sender, PaintEventArgs e)
    {
        Rectangle r = new Rectangle(0,0, panel_Borde_abajo.Width, panel_Borde_abajo.Height);

        if (r.Width > 0 && r.Height > 0)
        {
            Color c1 = Color.FromArgb(255, 54, 54, 54);
            Color c2 = Color.FromArgb(255, 62, 62, 62);
            Color c3 = Color.FromArgb(255, 98, 98, 98);

            LinearGradientBrush br = new LinearGradientBrush(r, c1, c3, 90, true);
            ColorBlend cb = new ColorBlend();
            cb.Positions = new[] { 0, (float)0.5, 1 };
            cb.Colors = new[] { c1, c2 , c3 };
            br.InterpolationColors = cb;

            // …
Run Code Online (Sandbox Code Playgroud)

c# datagridview paint winforms

1
推荐指数
1
解决办法
4632
查看次数

将BindingNavigator与以编程方式创建的Datagridview连接

我已经以编程方式创建了一个datagridview.因此,没有绑定源或数据源可以将Datagridview和Binidgnavigator连接到它们.有没有其他方法可以将它们相互连接起来.这是我的datafridview代码

帮我把它连接到bindingNavigator

private void Fill()
{
    try
    {
        if (dataGridView1 != null)
        {
            dataGridView1.ColumnCount = 11;
            dataGridView1.Columns[0].HeaderText = Resources.Form1_Fill_ID;
            dataGridView1.Columns[1].HeaderText = Resources.Form1_Fill_Family;
            dataGridView1.Columns[2].HeaderText = Resources.Form1_Fill_Cellphone;
            dataGridView1.Columns[3].HeaderText = Resources.Form1_Fill_Phone1;
            dataGridView1.Columns[4].HeaderText = Resources.Form1_Fill_Phone2;
            dataGridView1.Columns[5].HeaderText = Resources.Form1_Fill_Phone3;
            dataGridView1.Columns[6].HeaderText = Resources.Form1_Fill_Fax;
            dataGridView1.Columns[7].HeaderText = Resources.Form1_Fill_CompanyName;
            dataGridView1.Columns[8].HeaderText = Resources.Form1_Fill_Agency;
            dataGridView1.Columns[9].HeaderText = Resources.Form1_Fill_Brands;
            dataGridView1.Columns[10].HeaderText = Resources.Form1_Fill_Address;

            dataGridView1.Columns[0].Name = Resources.Form1_Fill_ID;
            dataGridView1.Columns[1].Name = Resources.Form1_Fill_Family;
            dataGridView1.Columns[2].Name = Resources.Form1_Fill_Cellphone;
            dataGridView1.Columns[3].Name = Resources.Form1_Fill_Phone1;
            dataGridView1.Columns[4].Name = Resources.Form1_Fill_Phone2;
            dataGridView1.Columns[5].Name = Resources.Form1_Fill_Phone3;
            dataGridView1.Columns[6].Name = Resources.Form1_Fill_Fax;
            dataGridView1.Columns[7].Name = Resources.Form1_Fill_CompanyName;
            dataGridView1.Columns[8].Name = Resources.Form1_Fill_Agency;
            dataGridView1.Columns[9].Name = Resources.Form1_Fill_Brands;
            dataGridView1.Columns[10].Name …
Run Code Online (Sandbox Code Playgroud)

c# binding datagridview

1
推荐指数
1
解决办法
5402
查看次数

更快捷地将csv读取到网格

我在Windows Forms .NET 3.5中有以下内容

它适用于记录小于10,000的csv,但对于30,000以上的记录则较慢.输入csv文件可以在1到1,00,000条记录之间进行任何记录

目前使用的代码:

/// <summary>
        /// This will import file to the collection object
        /// </summary>
        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 = objReader.ReadLine();
                        if (textLine != "")
                        {
                            splitLine = textLine.Split(',');
                            if (splitLine[0] != "" || splitLine[1] != "")
                            {
                                accountsDataGridView.Rows.Add(splitLine);
                            }
                        }
                    } while (objReader.Peek() != -1); …
Run Code Online (Sandbox Code Playgroud)

.net c# csv datagridview winforms

1
推荐指数
1
解决办法
1万
查看次数

获取错误使用Timer类时的跨线程操作

我有一个Winform应用程序,我对它的作用感到满意.我想每15分钟从数据库中检索最新数据并将其显示在DataGridView中.

我添加了一个Timer类.一旦经过15分钟,我就可以调用检索并显示数据的方法.我收到了错误(请参见随附的屏幕截图).

我在这做错了什么?

以下是我的代码:

public partial class Form1 : Form
{
    System.Timers.Timer aTimer;

    public Form1()
    {
      InitializeComponent();
      StartTimer();
    }

    private void RetrieveData()
    {

      DataTable table = new DataTable();
      table.Rows.Add(woStatus, dateReceived, dateApprovedFormatted, binNo, ppNo, woNo, daysDifference);

      dataGridViewMain.DataSource = table;
      dataGridViewMain.Sort(dataGridViewMain.Columns["Days in the shop"], ListSortDirection.Descending);
    }

    private void StartTimer()
    {
      aTimer = new System.Timers.Timer(10000); // 10secs
      aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
      RetrieveData();
      aTimer.Start();
    }

    private void OnTimedEvent(object source, ElapsedEventArgs e)
    {
      aTimer.Stop();
      aTimer.Dispose();
      StartTimer();
    }
}
Run Code Online (Sandbox Code Playgroud)

c# datagridview winforms

1
推荐指数
1
解决办法
2726
查看次数

Gridview模板字段数据源

我在我的asp.net页面上放置了一个gridview,并使用sql调用来获取数据源.在sql调用中,它带来了所有字段(名称,地址,电话,类型)的数据在gridview上,在编辑期间,有2个字段(电话,类型)需要是模板字段而不是绑定字段,并且项目模板中的文本框或标签(以较小者为准).

当我运行代码时,数据网格完成并填写 - 减去手机或类型字段(模板字段)的信息.如何对字段进行数据绑定,以便正确显示信息.我已经包含了我的代码.

任何帮助将不胜感激.提前致谢!

网格视图:

  <asp:GridView ID="gvMTM" runat="server" AllowPaging="True" DataKeyNames="MTMID"
    AutoGenerateColumns="False" AutoGenerateEditButton="True"
    OnRowEditing="gvMTM_RowEditing" 
    OnRowUpdating="gvMTM_UpdateRowEditing" 
    OnRowCancelingEdit="gvMTM_CancelRowEditing" >
    <Columns>
        <asp:BoundField DataField="MTMID" HeaderText="ID" />
        <asp:BoundField DataField="MTMName" HeaderText="Name" />
        <asp:BoundField DataField="Add1" HeaderText="Add1" />
        <asp:BoundField DataField="Add2" HeaderText="Add2" />
        <asp:BoundField DataField="City" HeaderText="City" />
        <asp:BoundField DataField="ST" HeaderText="ST" />
        <asp:BoundField DataField="Zip" HeaderText="Zip" />
        <asp:BoundField DataField="Email" HeaderText="Email" />
        <asp:TemplateField HeaderText="Phone#">
            <EditItemTemplate>
                <asp:TextBox ID="txtPhoneEdit" runat="server"></asp:TextBox>
                <asp:MaskedEditExtender ID="TemptxtPhone_MaskedEditExtender" runat="server" 
                    CultureAMPMPlaceholder="" CultureCurrencySymbolPlaceholder="" 
                    CultureDateFormat="" CultureDatePlaceholder="" CultureDecimalPlaceholder="" 
                    CultureThousandsPlaceholder="" CultureTimePlaceholder="" Enabled="True" 
                    TargetControlID="TemptxtPhone">
                </asp:MaskedEditExtender>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:TextBox ID="txtPhoneRead" runat="server" BorderStyle="None"></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="RR">
            <EditItemTemplate> …
Run Code Online (Sandbox Code Playgroud)

asp.net datagridview templatefield

1
推荐指数
1
解决办法
3万
查看次数