作成日: 2024/01/19 最終更新日: 2024/01/31
文書種別
使用方法
詳細
IMEコンポーネントのふりがな取得機能は、MultiRow for Windows Formsのセルに対しても有効です。ReadingStringOutputクラスをセルに設定することで、セルに入力された漢字のふりがなを取得し別のセルに表示することができます。入力テキストの対応位置にふりがなを出力できる表示モードIntelligenceや、アルファベットのふりがな取得にも対応します。
なお、本機能はGcTextBox型とTextBox型セル(GcTextBoxCell/TextBoxCell)のみサポートされます。
下記のサンプルコードは、"TextBoxCell1"に入力されたふりがなを"TextBoxCell2"に表示する例です。表示モードはIntelligenceです。
※このサンプルコードを実行するには、フォームにあらかじめGcMultiRowコントロールとGcImeコンポーネントを配置します。
[Visual Basic]
なお、本機能はGcTextBox型とTextBox型セル(GcTextBoxCell/TextBoxCell)のみサポートされます。
下記のサンプルコードは、"TextBoxCell1"に入力されたふりがなを"TextBoxCell2"に表示する例です。表示モードはIntelligenceです。
※このサンプルコードを実行するには、フォームにあらかじめGcMultiRowコントロールとGcImeコンポーネントを配置します。
[Visual Basic]
Imports GrapeCity.Win.MultiRow
Imports GrapeCity.Win.Editors
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim textBoxCell1 As New TextBoxCell()
textBoxCell1.Name = "TextBoxCell1"
Dim textBoxCell2 As New TextBoxCell()
textBoxCell2.Name = "TextBoxCell2"
GcMultiRow1.Template = Template.CreateGridTemplate(New Cell() {textBoxCell1, textBoxCell2})
End Sub
Private Sub GcMultiRow1_EditingControlShowing(sender As Object, e As EditingControlShowingEventArgs) Handles GcMultiRow1.EditingControlShowing
If GcMultiRow1.CurrentCell.Name = "TextBoxCell1" Then
' GcImeコンポーネントとTextBoxCellの編集用コントロールを関連付け
GcIme1.SetKanaMode(e.Control, KanaMode.Hiragana)
GcIme1.SetReadingStringOutput(e.Control, New ReadingStringOutput(GcMultiRow1.CurrentRow("TextBoxCell2"), ReadingStringOutputMode.Intelligence))
_lastEditingMRCell = e.Control
End If
End Sub
Private Sub GcMultiRow1_CellEndEdit(sender As Object, e As CellEndEditEventArgs) Handles GcMultiRow1.CellEndEdit
If e.EditCanceled Then
' Escキーにより編集がキャンセルされた場合の処理
If GcMultiRow1.CurrentCell.Value Is Nothing Then
_lastEditingMRCell.Text = String.Empty
Else
_lastEditingMRCell.Text = GcMultiRow1.CurrentCell.Value.ToString()
End If
End If
' GcImeコンポーネントの関連付けを解除
GcIme1.ResetReadingStringOutput(_lastEditingMRCell)
_lastEditingMRCell = Nothing
End Sub
[C#]using GrapeCity.Win.Editors;
using GrapeCity.Win.MultiRow;
private void Form1_Load(object sender, EventArgs e)
{
var TextBoxCell1 = new TextBoxCell();
TextBoxCell1.Name = "TextBoxCell1";
var TextBoxCell2 = new TextBoxCell();
TextBoxCell2.Name = "TextBoxCell2";
gcMultiRow1.Template = Template.CreateGridTemplate(new Cell[] { TextBoxCell1, TextBoxCell2 });
gcMultiRow1.EditingControlShowing += gcMultiRow1_EditingControlShowing;
gcMultiRow1.CellEndEdit += gcMultiRow1_CellEndEdit;
}
void gcMultiRow1_EditingControlShowing(object sender, EditingControlShowingEventArgs e)
{
if (gcMultiRow1.CurrentCell.Name == "TextBoxCell1")
{
// GcImeコンポーネントとTextBoxCellの編集用コントロールを関連付け
gcIme1.SetKanaMode(e.Control, KanaMode.Hiragana);
gcIme1.SetReadingStringOutput(e.Control, new ReadingStringOutput(gcMultiRow1.CurrentRow["TextBoxCell2"], ReadingStringOutputMode.Intelligence));
_lastEditingMRCell = e.Control;
}
}
private void gcMultiRow1_CellEndEdit(object sender, CellEndEditEventArgs e)
{
if (e.EditCanceled)
{
// Escキーにより編集がキャンセルされた場合の処理
if (gcMultiRow1.CurrentCell.Value == null)
{
_lastEditingMRCell.Text = string.Empty;
}
else
{
_lastEditingMRCell.Text = gcMultiRow1.CurrentCell.Value.ToString();
}
}
// GcImeコンポーネントの関連付けを解除
gcIme1.ResetReadingStringOutput(_lastEditingMRCell);
_lastEditingMRCell = null;
}
関連情報