winform下DataGrid的难题

我的程序框架大概是这样的:
代码省略了很多

None.gif private   void  Form1_Load( object  sender, System.EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    
//这里初始化Form1里的dataGrid1,风格是系统默认的。
InBlock.gif
    dataGrid1.DataSource = dt;
InBlock.gif    
while(i<numCols)
ExpandedSubBlockStart.gifContractedSubBlock.gif   
dot.gif{
InBlock.gif    DataGridTextBoxColumn tbc 
= new DataGridTextBoxColumn();
InBlock.gif    ts.GridColumnStyles.Add(tbc);
ExpandedSubBlockEnd.gif   }

InBlock.gif   dataGrid1.TableStyles.Add(ts);
ExpandedBlockEnd.gif}

窗体里有个button1,它的事件是

None.gif private   void  button1_Click( object  sender, System.EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif   
//DataGridCellColorTextBoxColumn继承于DataGridTextBoxColumn,重写了Paint事件,另外它还加入了一个新的方法PaintCol,这个方法为了能重画单个单元格,代码在下面
InBlock.gif
   DataGridCellColorTextBoxColumn columnTextColumn ;
InBlock.gif   
for(int i = 0; i < numCols; ++i)
ExpandedSubBlockStart.gifContractedSubBlock.gif   
dot.gif{
InBlock.gif     columnTextColumn 
= new DataGridCellColorTextBoxColumn();
InBlock.gif     columnTextColumn.CheckCellColor 
+= new
 CellColorEventHandlerSetColorValues);
InBlock.gif     tableStyle.GridColumnStyles.Add(columnTextColumn);
ExpandedSubBlockEnd.gif    }

InBlock.gif    dataGrid1.TableStyles.Add(tableStyle);
InBlock.gif    dataGrid1.DataSource 
= ds.Tables["Quote"];
ExpandedBlockEnd.gif}

None.gif
None.gif
public   void  PaintCol(Graphics g, Rectangle cellRect, CurrencyManager cm,  int  rowNum, 
Brush bBrush, Brush fBrush, 
bool  isVisible)
ExpandedBlockStart.gifContractedBlock.gif   
dot.gif {
InBlock.gif    
this.Paint(g, cellRect, cm, rowNum, bBrush, fBrush, isVisible);
ExpandedBlockEnd.gif   }

None.gif

 

窗体里有个button2,它的事件是

None.gif private   void  button2_Click( object  sender, System.EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif   
//通过调用DataGridCellColorTextBoxColumn里的PaintCol方法重画七行七列的单元格的外观
InBlock.gif
 DataGridCellColorTextBoxColumn tbc =
InBlock.gif(DataGridCellColorTextBoxColumn)dgt.GridColumnStyles[
7];
InBlock.gif Graphics g 
= dataGrid1.CreateGraphics();
InBlock.gif Rectangle cellRect;
InBlock.gif cellRect
=dataGrid1.GetCellBounds(7,7);
InBlock.gif CurrencyManager cm 
=
InBlock.gif(CurrencyManager)dataGrid1.BindingContext[ds.Tablesdgt.MappingName]];
InBlock.gif   Brush fBrush 
= new System.Drawing.SolidBrush(Color.Red);
InBlock.gif   Brush bBrush
= new System.Drawing.SolidBrush(Color.Black);
InBlock.gif   tbc.PaintCol(g, cellRect, cm, 
7, bBrush, fBrush, false );
ExpandedBlockEnd.gif}

None.gif


运行时先点button1,再点button2,则button2重画的单元格的风格会在窗体最小化和最
大化后变回button1执行后产生的风格。我现在的问题是就是怎样才能把button2产生的
风格一直保留下来?
谢谢

另外在实际应用过程中不是只通过button触发事件更改单元格的外观的
有可能根据某个事件来随时更改指定单元格的外观

还有谁能说说当窗口最小化后再最大化时 发生了什么事情?

转载于:https://www.cnblogs.com/serveru/archive/2004/07/08/22430.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值