作成日: 2020/07/30 最終更新日: 2020/07/30
文書種別
使用方法
詳細
マウスで選択したセルのBackColorを取得する方法として、セル選択時に発生するAfterRowColChangeイベントを利用したり、マウス移動に伴って発生するMouseMoveイベントを利用する手段が考えられます。
新規フォームにC1FlexGridとLabelコントロールを配置し、以下のようなコードを追加して動作をご確認ください。
◎サンプルコード(VB)
新規フォームにC1FlexGridとLabelコントロールを配置し、以下のようなコードを追加して動作をご確認ください。
◎サンプルコード(VB)
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' セルの背景色の設定
C1FlexGrid1.GetCellRange(1, 1, 1, 1).StyleNew.BackColor = Color.Yellow
C1FlexGrid1.GetCellRange(2, 2, 2, 2).StyleNew.BackColor = Color.YellowGreen
End Sub
Private Sub C1FlexGrid1_AfterRowColChange(sender As Object, e As C1.Win.C1FlexGrid.RangeEventArgs) Handles C1FlexGrid1.AfterRowColChange
' 該当セルのStyleプロパティの取得
Dim check As C1.Win.C1FlexGrid.CellStyle = C1FlexGrid1.GetCellRange(C1FlexGrid1.Row, C1FlexGrid1.Col).Style
' Style.BackColorの取得
If Not check Is Nothing Then
Label1.Text = $"{C1FlexGrid1.Row} {C1FlexGrid1.Col} {check.BackColor}"
Else
Label1.Text = $"{C1FlexGrid1.Row} {C1FlexGrid1.Col} {C1FlexGrid1.Styles.Normal.BackColor}"
End If
End Sub
Private Sub C1FlexGrid1_MouseMove(sender As Object, e As MouseEventArgs) Handles C1FlexGrid1.MouseMove
'' マウスポインタ位置のセル情報の取得
'Dim htInfo As C1.Win.C1FlexGrid.HitTestInfo = C1FlexGrid1.HitTest()
'' マウスポインタがセル上にある場合
'If htInfo.Type = C1.Win.C1FlexGrid.HitTestTypeEnum.Cell Then
' ' 該当セルのStyleプロパティの取得
' Dim check As C1.Win.C1FlexGrid.CellStyle = C1FlexGrid1.GetCellRange(htInfo.Row, htInfo.Column, htInfo.Row, htInfo.Column).Style
' ' Style.BackColorの取得
' If Not check Is Nothing Then
' Label1.Text = $"{htInfo.Row} {htInfo.Column} {check.BackColor}"
' Else
' Label1.Text = $"{htInfo.Row} {htInfo.Column} {C1FlexGrid1.Styles.Normal.BackColor}"
' End If
'End If
End Sub
End Class
◎サンプルコード(C#)namespace prj_C1FlexGrid
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// セルの背景色の設定
c1FlexGrid1.GetCellRange(1, 1, 1, 1).StyleNew.BackColor = Color.Yellow;
c1FlexGrid1.GetCellRange(2, 2, 2, 2).StyleNew.BackColor = Color.YellowGreen;
}
private void c1FlexGrid1_AfterRowColChange(object sender, C1.Win.C1FlexGrid.RangeEventArgs e)
{
// 該当セルのStyleプロパティの取得
C1.Win.C1FlexGrid.CellStyle check = c1FlexGrid1.GetCellRange(c1FlexGrid1.Row, c1FlexGrid1.Col).Style;
// Style.BackColorの取得
if (!(check == null))
{
label1.Text = $"{c1FlexGrid1.Row} {c1FlexGrid1.Col} {check.BackColor}";
}
else
{
label1.Text = $"{c1FlexGrid1.Row} {c1FlexGrid1.Col} {c1FlexGrid1.Styles.Normal.BackColor}";
}
}
private void c1FlexGrid1_MouseMove(object sender, MouseEventArgs e)
{
//// マウスポインタ位置のセル情報の取得
//C1.Win.C1FlexGrid.HitTestInfo htInfo = c1FlexGrid1.HitTest();
//// マウスポインタがセル上にある場合
//if (htInfo.Type == C1.Win.C1FlexGrid.HitTestTypeEnum.Cell)
//{
// // 該当セルのStyleプロパティの取得
// C1.Win.C1FlexGrid.CellStyle check = c1FlexGrid1.GetCellRange(htInfo.Row, htInfo.Column, htInfo.Row, htInfo.Column).Style;
// // Style.BackColorの取得
// if (!(check == null))
// {
// label1.Text = $"{htInfo.Row} {htInfo.Column} {check.BackColor}";
// }
// else
// {
// label1.Text = $"{htInfo.Row} {htInfo.Column} {c1FlexGrid1.Styles.Normal.BackColor}";
// }
//}
}
}
}
旧文書番号
85850