winform(c#)程序
在dataGrid 中将检验字段为不合格的行用红色显示,有可能有多行
,并且是在往dataGrid中添加数据时实现这种效果。请问应如何解决另:有谁知道将dataGrid的滚动条一直定位在最上头,解决的话另开贴放分

解决方案 »

  1.   

    第一个问题免不了要遍历,这个pb的datawindow就不错
    第二个问题嘛在www.chinaspx.com上面有篇文章,可以参考,去找找,肯定有,我只记得在.net转载文章那个区域
      

  2.   

    <font color=red></font>
      

  3.   

    datagrid 其实是内嵌的textbox可以对其设置显示的样式,参考代码:
    private void SetDataGrid(string tablename)
    {
    NetExam.Interfaces.EntityDefinition.ExamLibrary ex=EntityManager.CreateObject(typeof(NetExam.Interfaces.EntityDefinition.ExamLibrary)) as NetExam.Interfaces.EntityDefinition.ExamLibrary;
    ex.EntityData.Tables[0].Columns.Remove("HQuestion");
    ex.EntityData.Tables[0].Columns.Remove("HChoiceA");
    ex.EntityData.Tables[0].Columns.Remove("HChoiceB");
    ex.EntityData.Tables[0].Columns.Remove("HChoiceC");
    ex.EntityData.Tables[0].Columns.Remove("HChoiceD");
    ex.EntityData.Tables[0].Columns.Remove("HAnalysis");
    //this.dataGrid1.DataSource=ex.EntityData.Tables[0];//自动的模式化了     DataGridTableStyle dataGridTableStyle = new DataGridTableStyle();
    dataGridTableStyle.ColumnHeadersVisible=false;
    this.dataGrid1.CaptionVisible=false;
    dataGridTableStyle.MappingName=tablename; DataGridTextBoxColumn txbColumnID=new DataGridTextBoxColumn();
    txbColumnID.HeaderText="编号";
    txbColumnID.Width = 40;
    txbColumnID.MappingName="ExamID";
    dataGridTableStyle.GridColumnStyles.Add(txbColumnID); DataGridTextBoxColumn txbColumnAdder=new DataGridTextBoxColumn();
    txbColumnAdder.HeaderText="添加者";
    txbColumnAdder.Width = 70;
    txbColumnAdder.MappingName="Adder";
    dataGridTableStyle.GridColumnStyles.Add(txbColumnAdder); DataGridTextBoxColumn txbColumnChapter=new DataGridTextBoxColumn();
    txbColumnChapter.HeaderText="章节";
    txbColumnChapter.Width = 30;
    txbColumnChapter.MappingName="Chapter";
    dataGridTableStyle.GridColumnStyles.Add(txbColumnChapter); DataGridTextBoxColumn txbColumnHarder=new DataGridTextBoxColumn();
    txbColumnHarder.HeaderText="难度";
    txbColumnHarder.Width = 30;
    txbColumnHarder.MappingName="Levela";
    dataGridTableStyle.GridColumnStyles.Add(txbColumnHarder); DataGridTextBoxColumn txbColumnAnswer=new DataGridTextBoxColumn();
    txbColumnAnswer.HeaderText="答案";
    txbColumnAnswer.Width = 30;
    txbColumnAnswer.MappingName="Answer";
    dataGridTableStyle.GridColumnStyles.Add(txbColumnAnswer); DataGridTextBoxColumn rtxbColumnTitle=new DataGridTextBoxColumn();
                rtxbColumnTitle.Width=250;
    rtxbColumnTitle.HeaderText="题目";
    rtxbColumnTitle.MappingName="Question";
    dataGridTableStyle.GridColumnStyles.Add(rtxbColumnTitle); DataGridTextBoxColumn rtxbColumnA=new DataGridTextBoxColumn();
    rtxbColumnA.Width=100;
    rtxbColumnA.HeaderText="选项A";
    rtxbColumnA.MappingName="ChoiceA";
    dataGridTableStyle.GridColumnStyles.Add(rtxbColumnA);
    DataGridTextBoxColumn rtxbColumnB=new DataGridTextBoxColumn();
    rtxbColumnB.Width=100;
    rtxbColumnB.HeaderText="选项B";
    rtxbColumnB.MappingName="ChoiceB";
    dataGridTableStyle.GridColumnStyles.Add(rtxbColumnB);
    DataGridTextBoxColumn rtxbColumnC=new DataGridTextBoxColumn();
    rtxbColumnC.Width=100;
    rtxbColumnC.HeaderText="选项C";
    rtxbColumnC.MappingName="ChoiceC";
    dataGridTableStyle.GridColumnStyles.Add(rtxbColumnC);
    DataGridTextBoxColumn rtxbColumnD=new DataGridTextBoxColumn();
    rtxbColumnD.Width=100;
    rtxbColumnD.HeaderText="选项D";
    rtxbColumnD.MappingName="ChoiceD";
    dataGridTableStyle.GridColumnStyles.Add(rtxbColumnD);
    DataGridTextBoxColumn rtxbColumnAnylize=new DataGridTextBoxColumn();
    rtxbColumnAnylize.Width=200;
    rtxbColumnAnylize.HeaderText="分析";
    rtxbColumnAnylize.MappingName="Analysis";
    dataGridTableStyle.GridColumnStyles.Add(rtxbColumnAnylize);
    //
    this.dataGrid1.TableStyles.Add(dataGridTableStyle);

    /*
    GridColumnStylesCollection colStyle = this.dataGrid1.TableStyles[0].GridColumnStyles; colStyle[0].Width = 40;
    colStyle[0].HeaderText="编号"; colStyle[1].Width = 60;
    colStyle[1].HeaderText="添加者";
    colStyle[1].Alignment=HorizontalAlignment.Center; colStyle[2].Width = 70;
    colStyle[2].HeaderText="添加日期";
    colStyle[2].Alignment=HorizontalAlignment.Center; colStyle[3].Width = 500;
    colStyle[3].HeaderText="题目";
    colStyle[4].Width = 30;
    colStyle[4].HeaderText="章节"; colStyle[5].Width = 30;
    colStyle[5].HeaderText="难度"; colStyle[6].Width = 100;
    colStyle[6].HeaderText="选项A"; colStyle[7].Width = 100;
    colStyle[7].HeaderText="选项B"; colStyle[8].Width = 100;
    colStyle[8].HeaderText="选项C"; colStyle[9].Width =100;
    colStyle[9].HeaderText="选项D"; colStyle[10].Width = 30;
    colStyle[10].HeaderText="答案"; colStyle[11].Width = 300;
    colStyle[11].HeaderText="分析";
    */
    }
      

  4.   

    第一个问题有人说了,第二个问题你用 CurrencyManager 类试一下,只要把影响滚动条的事件都写上一个CurrencyManager.Position = 0;试试
      

  5.   

    datagrid 其实是内嵌的textbox可以对其设置显示的样式,参考代码:
    private void SetDataGrid(string tablename)
    {
    NetExam.Interfaces.EntityDefinition.ExamLibrary ex=EntityManager.CreateObject(typeof(NetExam.Interfaces.EntityDefinition.ExamLibrary)) as NetExam.Interfaces.EntityDefinition.ExamLibrary;
    ex.EntityData.Tables[0].Columns.Remove("HQuestion");
    ex.EntityData.Tables[0].Columns.Remove("HChoiceA");
    ex.EntityData.Tables[0].Columns.Remove("HChoiceB");
    ex.EntityData.Tables[0].Columns.Remove("HChoiceC");
    ex.EntityData.Tables[0].Columns.Remove("HChoiceD");
    ex.EntityData.Tables[0].Columns.Remove("HAnalysis");
    //this.dataGrid1.DataSource=ex.EntityData.Tables[0];//自动的模式化了     DataGridTableStyle dataGridTableStyle = new DataGridTableStyle();
    dataGridTableStyle.ColumnHeadersVisible=false;
    this.dataGrid1.CaptionVisible=false;
    dataGridTableStyle.MappingName=tablename; DataGridTextBoxColumn txbColumnID=new DataGridTextBoxColumn();
    txbColumnID.HeaderText="编号";
    txbColumnID.Width = 40;
    txbColumnID.MappingName="ExamID";
    dataGridTableStyle.GridColumnStyles.Add(txbColumnID); DataGridTextBoxColumn txbColumnAdder=new DataGridTextBoxColumn();
    txbColumnAdder.HeaderText="添加者";
    txbColumnAdder.Width = 70;
    txbColumnAdder.MappingName="Adder";
    dataGridTableStyle.GridColumnStyles.Add(txbColumnAdder); DataGridTextBoxColumn txbColumnChapter=new DataGridTextBoxColumn();
    txbColumnChapter.HeaderText="章节";
    txbColumnChapter.Width = 30;
    txbColumnChapter.MappingName="Chapter";
    dataGridTableStyle.GridColumnStyles.Add(txbColumnChapter); DataGridTextBoxColumn txbColumnHarder=new DataGridTextBoxColumn();
    txbColumnHarder.HeaderText="难度";
    txbColumnHarder.Width = 30;
    txbColumnHarder.MappingName="Levela";
    dataGridTableStyle.GridColumnStyles.Add(txbColumnHarder); DataGridTextBoxColumn txbColumnAnswer=new DataGridTextBoxColumn();
    txbColumnAnswer.HeaderText="答案";
    txbColumnAnswer.Width = 30;
    txbColumnAnswer.MappingName="Answer";
    dataGridTableStyle.GridColumnStyles.Add(txbColumnAnswer); DataGridTextBoxColumn rtxbColumnTitle=new DataGridTextBoxColumn();
                rtxbColumnTitle.Width=250;
    rtxbColumnTitle.HeaderText="题目";
    rtxbColumnTitle.MappingName="Question";
    dataGridTableStyle.GridColumnStyles.Add(rtxbColumnTitle); DataGridTextBoxColumn rtxbColumnA=new DataGridTextBoxColumn();
    rtxbColumnA.Width=100;
    rtxbColumnA.HeaderText="选项A";
    rtxbColumnA.MappingName="ChoiceA";
    dataGridTableStyle.GridColumnStyles.Add(rtxbColumnA);
    DataGridTextBoxColumn rtxbColumnB=new DataGridTextBoxColumn();
    rtxbColumnB.Width=100;
    rtxbColumnB.HeaderText="选项B";
    rtxbColumnB.MappingName="ChoiceB";
    dataGridTableStyle.GridColumnStyles.Add(rtxbColumnB);
    DataGridTextBoxColumn rtxbColumnC=new DataGridTextBoxColumn();
    rtxbColumnC.Width=100;
    rtxbColumnC.HeaderText="选项C";
    rtxbColumnC.MappingName="ChoiceC";
    dataGridTableStyle.GridColumnStyles.Add(rtxbColumnC);
    DataGridTextBoxColumn rtxbColumnD=new DataGridTextBoxColumn();
    rtxbColumnD.Width=100;
    rtxbColumnD.HeaderText="选项D";
    rtxbColumnD.MappingName="ChoiceD";
    dataGridTableStyle.GridColumnStyles.Add(rtxbColumnD);
    DataGridTextBoxColumn rtxbColumnAnylize=new DataGridTextBoxColumn();
    rtxbColumnAnylize.Width=200;
    rtxbColumnAnylize.HeaderText="分析";
    rtxbColumnAnylize.MappingName="Analysis";
    dataGridTableStyle.GridColumnStyles.Add(rtxbColumnAnylize);
    //
    this.dataGrid1.TableStyles.Add(dataGridTableStyle);

    /*
    GridColumnStylesCollection colStyle = this.dataGrid1.TableStyles[0].GridColumnStyles; colStyle[0].Width = 40;
    colStyle[0].HeaderText="编号"; colStyle[1].Width = 60;
    colStyle[1].HeaderText="添加者";
    colStyle[1].Alignment=HorizontalAlignment.Center; colStyle[2].Width = 70;
    colStyle[2].HeaderText="添加日期";
    colStyle[2].Alignment=HorizontalAlignment.Center; colStyle[3].Width = 500;
    colStyle[3].HeaderText="题目";
    colStyle[4].Width = 30;
    colStyle[4].HeaderText="章节"; colStyle[5].Width = 30;
    colStyle[5].HeaderText="难度"; colStyle[6].Width = 100;
    colStyle[6].HeaderText="选项A"; colStyle[7].Width = 100;
    colStyle[7].HeaderText="选项B"; colStyle[8].Width = 100;
    colStyle[8].HeaderText="选项C"; colStyle[9].Width =100;
    colStyle[9].HeaderText="选项D"; colStyle[10].Width = 30;
    colStyle[10].HeaderText="答案"; colStyle[11].Width = 300;
    colStyle[11].HeaderText="分析";
    */
    }
      

  6.   

    比较难.我上次在一个BLOG上面看到过这段代码:
    http://blog.csdn.net/osborne/archive/2004/06/13/19472.aspx
    我几天前用了,感觉很不错的.你看看