ハイパーリンク型セルのリンク文字列をクリックした際に独自の処理を行うことはできますか?
対象製品
SPREAD for Windows Forms 8.0J
詳細
ハイパーリンク型セルをクリックした際に発生するButtonClick イベントを取得することにより、例えばリンク文字列をクリック時に別のフォームを新たに起動する処理や、URLにアクセスする前に確認のダイアログを表示させるといった独自の処理を行うことができます。
◎サンプルコード(VB)
◎サンプルコード(C#)
◎サンプルコード(VB)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' 複数のリンクから成るハイパーリンク型セルを設定します
Dim link As New FarPoint.Win.Spread.CellType.HyperLinkCellType()
link.Text = "ABC or XYZ."
link.Links = New String() {"ABC", "XYZ"}
link.LinkAreas = New LinkArea() {New LinkArea(0, 3), New LinkArea(7, 3)}
FpSpread1.ActiveSheet.Cells(0, 0).CellType = link
FpSpread1.ActiveSheet.Columns(0).Width = 100
End Sub
Private Sub FpSpread1_ButtonClicked(ByVal sender As System.Object, ByVal e As FarPoint.Win.Spread.EditorNotifyEventArgs) Handles FpSpread1.ButtonClicked
' FarPointハイパーリンクコントロールを取得します
Dim linkControl As FarPoint.Win.FpHyperlink = FpSpread1.EditingControl
Dim max As Integer = linkControl.LinksVisited.Length
For i As Integer = 0 To max - 1
If linkControl.LinksVisited(i) = True Then
' 独自の処理を行います
MessageBox.Show(linkControl.Links(i))
linkControl.LinksVisited(i) = False
Return
End If
Next
End Sub
' 複数のリンクから成るハイパーリンク型セルを設定します
Dim link As New FarPoint.Win.Spread.CellType.HyperLinkCellType()
link.Text = "ABC or XYZ."
link.Links = New String() {"ABC", "XYZ"}
link.LinkAreas = New LinkArea() {New LinkArea(0, 3), New LinkArea(7, 3)}
FpSpread1.ActiveSheet.Cells(0, 0).CellType = link
FpSpread1.ActiveSheet.Columns(0).Width = 100
End Sub
Private Sub FpSpread1_ButtonClicked(ByVal sender As System.Object, ByVal e As FarPoint.Win.Spread.EditorNotifyEventArgs) Handles FpSpread1.ButtonClicked
' FarPointハイパーリンクコントロールを取得します
Dim linkControl As FarPoint.Win.FpHyperlink = FpSpread1.EditingControl
Dim max As Integer = linkControl.LinksVisited.Length
For i As Integer = 0 To max - 1
If linkControl.LinksVisited(i) = True Then
' 独自の処理を行います
MessageBox.Show(linkControl.Links(i))
linkControl.LinksVisited(i) = False
Return
End If
Next
End Sub
◎サンプルコード(C#)
private void Form1_Load(object sender, EventArgs e)
{
// 複数のリンクから成るハイパーリンク型セルを設定します
FarPoint.Win.Spread.CellType.HyperLinkCellType link = new FarPoint.Win.Spread.CellType.HyperLinkCellType();
link.Text = "ABC or XYZ.";
link.Links = new string[] { "ABC", "XYZ" };
link.LinkAreas = new LinkArea[] { new LinkArea(0, 3), new LinkArea(7, 3) };
fpSpread1.ActiveSheet.Cells[0, 0].CellType = link;
fpSpread1.ActiveSheet.Columns[0].Width = 100;
}
private void fpSpread1_ButtonClicked(object sender, FarPoint.Win.Spread.EditorNotifyEventArgs e)
{
// FarPointハイパーリンクコントロールを取得します
FarPoint.Win.FpHyperlink linkControl = (FarPoint.Win.FpHyperlink)fpSpread1.EditingControl;
int max = linkControl.LinksVisited.Length;
for (int i = 0; i < max; i++)
{
if (linkControl.LinksVisited[i] == true)
{
// 独自の処理を行います
MessageBox.Show(linkControl.Links[i]);
linkControl.LinksVisited[i] = false;
return;
}
}
}
{
// 複数のリンクから成るハイパーリンク型セルを設定します
FarPoint.Win.Spread.CellType.HyperLinkCellType link = new FarPoint.Win.Spread.CellType.HyperLinkCellType();
link.Text = "ABC or XYZ.";
link.Links = new string[] { "ABC", "XYZ" };
link.LinkAreas = new LinkArea[] { new LinkArea(0, 3), new LinkArea(7, 3) };
fpSpread1.ActiveSheet.Cells[0, 0].CellType = link;
fpSpread1.ActiveSheet.Columns[0].Width = 100;
}
private void fpSpread1_ButtonClicked(object sender, FarPoint.Win.Spread.EditorNotifyEventArgs e)
{
// FarPointハイパーリンクコントロールを取得します
FarPoint.Win.FpHyperlink linkControl = (FarPoint.Win.FpHyperlink)fpSpread1.EditingControl;
int max = linkControl.LinksVisited.Length;
for (int i = 0; i < max; i++)
{
if (linkControl.LinksVisited[i] == true)
{
// 独自の処理を行います
MessageBox.Show(linkControl.Links[i]);
linkControl.LinksVisited[i] = false;
return;
}
}
}
関連情報
キーワード
セル型