对不起,各位哥哥,我有一个问题向你们请教,请多多指教关于C#DataGrid的问题,特急!!!...

我所学的是C#,所编的是winform结构的,现在我有一个功能不能实现,想请你们帮帮我:
问题要点:
我有一个界面:界面上有一个DataGrid控件,现在想实现几个功能。
1.DataGrid中有四列,第一列列名为A,第二列列名为B,第三列列名为C,第四列列名为D,假如我在C列中某一行输入一个值,相应的B列是等于C列加上D列的值,而且想输入一行就保存一行数据,向数据库SQL插入数据。例:
A                     B                C                D
ABCD            20               15               5

2.如果我在DataGrid中第一行有一条数据,第二行也有一条数据,第三行也有一条数据,但第二行和第三行是第一行数据的子级,也就是说第一行数据为父级,在有子级的情况下,父级是不能输入的,它的值是第二行和第三行的和。例:

A                     B                C                D
ABCD            20               15               5                     此行是不能输入的
   BCD            12               10               2
     CD             8                   5               3

我到现在才写了一个DataGrid控件的框架:代码如下:
 #region Load事件
  private void ucBeginingBalance_Load(object sender, System.EventArgs e)
  {
   OpenBlanceInit();
  }
  #endregion

  #region 填充期初余额表列式
  private void AddDgBlance()
  {
//   this.dt.ColumnChanged+=new DataColumnChangeEventHandler(dt_RowChanged);
   this.dgBlance.DataSource=this.dt;


   DataGridTableStyle dgts=new DataGridTableStyle();
   dgts.MappingName=dt.TableName;
   this.dgBlance.AllowSorting=false;

   DataGridTextBoxColumn SubjectName=new DataGridTextBoxColumn();    //科目名称
   SubjectName.MappingName="CcodeName";
   SubjectName.HeaderText="科目名称";
   SubjectName.Width=220;
   SubjectName.Alignment=HorizontalAlignment.Left;
   SubjectName.ReadOnly=true;
   SubjectName.NullText="";
   
   SubjectName.TextBox.BackColor=Color.White;
   SubjectName.TextBox.Enabled=false;
   dgts.GridColumnStyles.Add(SubjectName);

   DataGridTextBoxColumn Direction=new DataGridTextBoxColumn();    //科目方向
   Direction.MappingName="Bproperty";
   Direction.HeaderText="方向";
   Direction.Width=75;
   Direction.Alignment=HorizontalAlignment.Center;
   Direction.ReadOnly=true;
   Direction.NullText="";
    Direction.TextBox.BackColor=Color.White;
   Direction.TextBox.Enabled=false;
   dgts.GridColumnStyles.Add(Direction);

   DataGridTextBoxColumn MoneyGenus=new DataGridTextBoxColumn();    //科目计量
   MoneyGenus.MappingName="Cmeause";
   MoneyGenus.HeaderText="计量单位";
   MoneyGenus.Width=90;
   MoneyGenus.Alignment=HorizontalAlignment.Center;
   MoneyGenus.ReadOnly=true;
   MoneyGenus.NullText="";
   MoneyGenus.TextBox.BackColor=Color.White;
   MoneyGenus.TextBox.Enabled=false;
   dgts.GridColumnStyles.Add(MoneyGenus);

   DataGridTextBoxColumn YearFirst=new DataGridTextBoxColumn();    //年初余额
   YearFirst.MappingName="YearBeginBalance";
   YearFirst.HeaderText="年初余额";
   YearFirst.Width=100;
   YearFirst.Alignment=HorizontalAlignment.Center;
   YearFirst.NullText="";
   YearFirst.TextBox.loc
   YearFirst.TextBox.DoubleClick+=new EventHandler(TextBox_DoubleClick);   //abcdefg
   dgts.GridColumnStyles.Add(YearFirst);

   DataGridTextBoxColumn Lend=new DataGridTextBoxColumn();      //累计借方
   Lend.MappingName="AddUpDebit";
   Lend.HeaderText="累计借方";
   Lend.Width=100;
   Lend.Alignment=HorizontalAlignment.Center;
   Lend.NullText="";
      Lend.TextBox.LostFocus+=new EventHandler(TextBox_LostFocus);
   dgts.GridColumnStyles.Add(Lend);

   DataGridTextBoxColumn Lender=new DataGridTextBoxColumn();     //累计贷方
   Lender.MappingName="AddupLender";
   Lender.HeaderText="累计贷方";
   Lender.Width=100;
   Lender.Alignment=HorizontalAlignment.Center;
   Lender.NullText="";
   dgts.GridColumnStyles.Add(Lender);

   DataGridTextBoxColumn ExpectFirst=new DataGridTextBoxColumn();    //期初余额
   ExpectFirst.MappingName="BeginingBalance";
   ExpectFirst.HeaderText="期初余额";
   ExpectFirst.Width=100;
   ExpectFirst.Alignment=HorizontalAlignment.Center;
   ExpectFirst.NullText="";
   dgts.GridColumnStyles.Add(ExpectFirst);
            this.dgBlance.TableStyles.Clear();
   this.dgBlance.TableStyles.Add(dgts);
  }
  #endregion

  #region 打开初使化
  private void OpenBlanceInit()
  {
   BeginingBalanceBLL Begin=new BeginingBalanceBLL(base.mUserInfo);
   dt=Begin.Query(new BeginingBalanceEn());
   AddDgBlance();
  }
  #endregion

转载于:https://www.cnblogs.com/liulifei1314520/archive/2006/01/11/315393.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WPF DataGrid是一种用于显示数据的控件,而DataGrid.Columns则是DataGrid中的列集合。你可以通过设置DataGrid.Columns的Background属性来改变整个列的背景颜色。 在WPF中,你可以使用多种方式来设置DataGrid.Columns的Background属性,包括使用静态资源、绑定属性、使用样式等。以下是一些示例代码: 1. 使用静态资源设置DataGrid.Columns的Background属性: ``` <DataGrid> <DataGrid.Columns> <DataGridTextColumn Header="Column 1" Binding="{Binding Column1}"> <DataGridTextColumn.HeaderStyle> <Style TargetType="DataGridColumnHeader"> <Setter Property="Background" Value="{StaticResource MyBrush}" /> </Style> </DataGridTextColumn.HeaderStyle> </DataGridTextColumn> </DataGrid.Columns> </DataGrid> ``` 2. 使用绑定属性设置DataGrid.Columns的Background属性: ``` <DataGrid> <DataGrid.Columns> <DataGridTextColumn Header="Column 1" Binding="{Binding Column1}"> <DataGridTextColumn.HeaderStyle> <Style TargetType="DataGridColumnHeader"> <Setter Property="Background" Value="{Binding DataContext.Column1HeaderBackground, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" /> </Style> </DataGridTextColumn.HeaderStyle> </DataGridTextColumn> </DataGrid.Columns> </DataGrid> ``` 3. 使用样式设置DataGrid.Columns的Background属性: ``` <DataGrid> <DataGrid.Resources> <Style TargetType="DataGridColumnHeader"> <Setter Property="Background" Value="LightGray" /> </Style> </DataGrid.Resources> <DataGrid.Columns> <DataGridTextColumn Header="Column 1" Binding="{Binding Column1}" /> </DataGrid.Columns> </DataGrid> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值