博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
研二下学期做的第一个项目(主要关于datagridview的一些笔记)
阅读量:5130 次
发布时间:2019-06-13

本文共 3856 字,大约阅读时间需要 12 分钟。

首先是行标题列rowheader

dataGridView1.TopLeftHeaderCell.Value = "details";

_______________________________________________________

有的时候在datagridview中手动添加列的时候,就算通过上下箭头调整了列的顺序,运行的时候也会出现列的顺序不对的现象。

我在datagridview中手动添加了datagridviewcomboboxcolumn列,无论怎么调整每次都显示在最后一列,在代码中使用列的displayindex也没有作用。

后来我使用了autogeneratecolumns=false 就可以了。该值默认为true。

_______________________________________________________

用强类型数据集无论用select语句怎么调整列的顺序,都不能够改变列的index。列的index只跟数据库表中的列的index有关。

而用普通的数据集(datatable dataset之类)是可以通过使用select语句调整列的顺序而达到改变列的index的。

            DataTable dt1 = new DataTable("tblStuDemo");

            string sql = "select age,id, name  from tblStuDemo";

            //string sql = "select id, name, age  from tblStuDemo";

            string connString = @"";
            SqlDataAdapter ada1 = new SqlDataAdapter( sql, connString);
            ada1.Fill(dt1);

_______________________________________________________

我在datagridview中手动添加了datagridviewcomboboxcolumn列,并使用items集合添加了{"粗","大","中"},绑定到数据表中的砂粒列,该列在数据库中类型是nchar(10)。

然后程序就一直报错。由于dataerror事件已经被我改写了,一时间很难找到症结。最后将砂粒列类型改为nchar(1),才终于搞定。一定要注意类型匹配。

_______________________________________________________

datagridviewcell.rowindex 返回包含该单元格的行的索引。如果无所属行,则为-1。

返回-1,则表明该单元格为列标题,或已共享该单元格所在的行(这半句不是很懂,msdn上的)。

_______________________________________________________

winfrom下的datagridview只要设置datasource就可以了,没有databind方法。

该方法是asp.net的gridview控件的方法,因为asp.net需要渲染html,设置完datasource之后还需要databind,否则page上看不到数据。

_______________________________________________________

在项目中有个窗体有一堆radiobutton,即使已经设置了checked=false,运行的时候总是默认第一个radiobutton的checked属性为true。

百度一下得知窗体有个默认焦点。最简单的方法设置控件的tabindex值。我在项目中采用的方式是在窗体load事件中,用控件的select方法,设置窗体的默认焦点。

lable1.select(); 当然也可以使用focus()方法,不过不能在load事件中,因为这时form还没有展现出来,被激活,只是加载相应的资源和组件。可以在actived事件中设置的。

_______________________________________________________

错误提示:两个输出文件名解析为同一个输出路径obj\x86\debug\......resources

在做winform项目的时候碰到很多个界面和操作都很类似的情况,这个时候很容易想到copy paste rename。我遇到过很多上面的错误提示。网上搜索了一个,终于找到了症结。也有错误提示是这样的:resources参数不支持重复项。

方法从网上摘录如下:

public partial class MFleetMainForm: Form

    {
        public MFleetMainForm()
        {
            InitializeComponent();
            CommonApply.BindGridView( dgvwDataShow );
        }

partial class EditAddForm    

  {         /** <summary>        

      /// Required designer variable.        

       /// </summary>        

      private System.ComponentModel.IContainer components = null;         

      this.Name = "EditAddForm";            

      this.Text = "EditAddForm";            

      this.ResumeLayout( false );            

      this.PerformLayout();

        }

到这个时候还没有结束,错误提示依然还在。复制产生的新窗体的类名修改后,原来被复制的那个窗体的类名也被改为了新窗体的类名了,那么解决办法就是

1,把原先的Form的Name改回去
2,打开原先Form的.Designer.cs文件,把里边的partial
class 新类名,这个新类名改回老类名
3,还注意一点,如果在其他类里有调用了老类名,也会被改成新类名的(例如在其他窗体代码中实例化老类的代码也会被改成新类名的)

_______________________________________________________

在项目中经常要用到数据集xsd文件,项目整合的时候就会遇到“无法找到对象settings”的连接”sugarhouseConnectionString(settings)之类的提示。

原因是服务器资源管理器里面的数据库连接和properties里面的settings.settings的默认连接不一致。当从服务器资源管理器里面添加表到数据集文件中时,系统会自动创建一个新的连接字符串。解决方案是这样的:

用记事本找到项目文件夹下的sugarhouseConnectionString.xsd文件,找到Connections节点

  <DataSource DefaultConnectionIndex="0" FunctionsComponentName="QueriesTableAdapter" Modifier="AutoLayout, AnsiClass, Class, Public" SchemaSerializationMode="IncludeSchema" xmlns="urn:schemas-microsoft-com:xml-msdatasource">

        <Connections>
          <Connection AppSettingsObjectName="Settings" AppSettingsPropertyName="sugarhouseConnectionString" ConnectionStringObject="" IsAppSettingsProperty="true" Modifier="Assembly" Name="sugarhouseConnectionString (Settings)" ParameterPrefix="@" PropertyReference="ApplicationSettings.testDemo.Properties.Settings.GlobalReference.Default.sugarhouseConnectionString" Provider="System.Data.SqlClient" />
        </Connections>

注意修改DefaultConnectionIndex值。

最后再修改sugarhouseConnectionString.Designer.cs(可以使用记事本,也可以使用vs),改为

  this._connection.ConnectionString = global::testDemo.Properties.Settings.Default.sugarhouseConnectionString;

_______________________________________________________

先就这么多……

转载于:https://www.cnblogs.com/superallen/p/3713634.html

你可能感兴趣的文章
假如女人是一种编程语言,你会更喜欢哪一种
查看>>
debian 64位系统中添加对32位的支持
查看>>
基于CentOS6.5或Ubuntu14.04下Suricata里搭配安装 ELK (elasticsearch, logstash, kibana)(图文详解)...
查看>>
如果遇到Hadoop集群正常,MapReduce作业运行出现错误,如何来查看作业运行日志(图文详解)...
查看>>
硬件驱动程序的知识点滴
查看>>
车牌号码正则表达式
查看>>
Tesseract 4 自行构建支持双引擎的tessdata 文件
查看>>
Find and kill the dead lock process
查看>>
CListCtrl 的应用
查看>>
mongodb
查看>>
合并指定表格指定行的相同文本的相邻单元格
查看>>
双屏幕,鼠标移动设置
查看>>
【BZOJ-3809】Gty的二逼妹子序列 分块 + 莫队算法
查看>>
《Entity Framework 6 Recipes》中文翻译——第十章EntityFramework存储过程处理(四)...
查看>>
收缩自编码器(CAE)
查看>>
AVL平衡树的插入例程
查看>>
Android Studio怎么删除项目
查看>>
shell变量自增 || Python脚本接收参数
查看>>
关于python安装lxml插件的问题
查看>>
Exp7 网络欺诈防范
查看>>