首先是行标题列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;

_______________________________________________________

先就这么多……

研二下学期做的第一个项目(主要关于datagridview的一些笔记)的更多相关文章

  1. 此文记录了我从研二下学期到研三上学期的找工历程,包括百度、腾讯、网易、移动、电信、华为、中兴、IBM八家企业的面试总结和心得--转

    感谢电子通讯工程的研究生学长为大家整理了这么全面的求职总结,希望进入通信公司和互联网公司做非技术类岗位的学弟学妹们千万不要错过哦~ ---------------------------原文分割线-- ...

  2. C# Winform代码片段-大二下学期的垃圾代码

    1.图片缩放 using System; using System.Windows.Forms; using System.Drawing; class haha : Form { static vo ...

  3. 我做的第一个程序(菜鸟的java课堂笔记)

    内存: 堆区,栈区,常量区,计数区,代码区: 数据类型: 基本数据类型:整形,浮点型,布尔型 boolean 只能返回真假值,字符型: 引用数据类型:类,数组: 基本数据类型-->直接存放到栈区 ...

  4. 潭州课堂25班:Ph201805201 tornado 项目 第一课 项目介绍和创建 (课堂笔记)

    tornado 相关说明 , 查找 python3 的路径: binbin@abc:~$ which python3/usr/bin/python3 创建虚拟环境 : 创建工程; 用 pycharm ...

  5. VB的第一个项目

     前言-----本人也是刚刚接触VB,企业的VB代码基本能看的懂,但是自己开发,只能呵呵.一般在刚学习一门新的语言时,很容易发生一些自己相当然的认识错误,so,记下并分享开发学习的过程,望指正.--- ...

  6. 【C语言】二维数组做形参

    二维数组有两种形式: ①在栈上:         int a[4][4] = {...}; ②在堆堆上:          int ** a = new int *[4];           for ...

  7. 如何在Android 或Linux 下,做Suspend /Resume 的Debug【转】

    转自:http://blog.csdn.net/jacobywu/article/details/24735521 目录(?)[-] Question Answer 加boot 參數 no_conso ...

  8. 我的屌丝giser成长记-研二篇

    之前有提到过的,本来按照计划中,研一结束就该去深圳中科院研究所实习的,之前跟里面师兄说好了的,奈何导师又接到一个新的科研研究项目,跟学院的几个其他老师一起合作的,主要是关于土地流转系统,而且是一个挺大 ...

  9. spring-oauth-server实践:使用授权方式四:client_credentials 模式下access_token做业务!!!

    spring-oauth-server入门(1-10)使用授权方式四:client_credentials 模式下access_token做业务!!! 准备工作 授权方式四::客户端方式: 服务网关地 ...

随机推荐

  1. VB.net中Ajaxpro的使用

    1:从网上下载:AjaxPro.2.DLL文件,下载地址: http://files.cnblogs.com/wequst/AjaxPro.2.zip 2:解压之后把DLL放到程序bin目录下进行参照 ...

  2. 《C++ Primer》学习笔记【第二部分 C++标准库】

    第8章 IO库 IO对象不能复制,即1.IO对象不能存储在vector或其他容器中   2.如果需要传递或返回IO对象,必须传递或返回指向该对象的指针或引用. 一般情况下,如果要传递IO对象以便对它进 ...

  3. Nginx的第一个模块-HelloWorld

    麻雀虽小,五脏俱全,小小的Hello World盛行于程序世界,就在于其代码虽短,但要真正运行起来,需要我们略通基本语法,稍懂编译运行环境,知晓操作过程,最后,还有一颗持之以恒,不怕折腾的心.前一阵子 ...

  4. curl上传图片文件

    为了优化网站,需要做静态化和,图片分离 暂时想到的方式是: 1,php//input  流方式上传到远程服务器 2,阿里云oss收费服务 3,curl上传图片 4,phpftp上传图片 5, 服务器同 ...

  5. WebStorm和sublime上使用git连接github(转)

    WebStorm使用git连接github的方法: 用webstorm上传代码时,首先要先下载git,网址一搜就可以搜到,安装git,并且把ssh配置到github上.然后开始配置webstorm,打 ...

  6. Const关键字

    const const是一个C语言的关键字,它限定一个变量不允许被改变.使用const在一定程度上可以提高程序的安全性和可靠性.另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程 ...

  7. PHP global 关键字

    global关键字用于在函数内部访问全局变量. <?php $x = 5; $y = 10; function myTest(){ global $x,$y; $x = $x+$y; } myT ...

  8. get github

    Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理.在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中.目前,包括Rubinius ...

  9. Objective-C( Foundation框架 一 NSDictionary (NSMutaleDictionary))

    NSDictionary 不可变的字典 创建字典的方法 // 创建字典的方式 NSDictionary *dy = [NSDictionary dictionaryWithObject:@" ...

  10. Windows下配置nginx+php(wnmp)

      第一部分:准备工作.(系统:Windows 8.1) 1.首先是下载软件. NGINX-1.3.8官网下载:http://nginx.org/en/download.html PHP5.4.8版本 ...