|
分類:[.NET 全般]
環境は Windows7 MicrosoftVisualStudio2010 です。
フォームにflexGridを張り付け下記のプログラムを作成
表示すると、左側の境界線が、思うように表示できません。 一部が描画されなかったり、スクロールするたびに線が 変わったりします。
どうすればよいのでしょうか?
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;
namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); }
private void Form1_Load(object sender, EventArgs e) { // マージセル fGrid.MergedRanges.Clear(); C1.Win.C1FlexGrid.CellRange cr = fGrid.GetCellRange(2, 2, 4, 4); cr.Data = ""; fGrid.MergedRanges.Add(cr); fGrid.Refresh(); }
private void fGrid_OwnerDrawCell(object sender, C1.Win.C1FlexGrid.OwnerDrawCellEventArgs e) { Graphics g = e.Graphics; C1.Win.C1FlexGrid.CellRange cr = new C1.Win.C1FlexGrid.CellRange(); cr = fGrid.GetMergedRange(e.Row, e.Col); e.DrawCell(); if (cr.IsSingleCell == false) { Rectangle r = new Rectangle(e.Bounds.Left - 1, e.Bounds.Top - 1, e.Bounds.Width, e.Bounds.Height); g.DrawLine(new Pen(Color.Red), new Point(r.Left, r.Top), new Point(r.Left, r.Bottom)); // 左 g.DrawLine(new Pen(Color.Green), new Point(r.Right, r.Top), new Point(r.Right, r.Bottom)); // 右 g.DrawLine(new Pen(Color.Blue), new Point(r.Left, r.Top), new Point(r.Right, r.Top)); // 上 g.DrawLine(new Pen(Color.Yellow), new Point(r.Left, r.Bottom), new Point(r.Right, r.Bottom)); // 下 } } } }
|