投稿者 魔界の仮面弁士  (社会人) 投稿日時 2021/2/27 17:29:43
VBA の場合と VB.NET の場合では若干異なるプログラムが必要になりますので、
質問時には、開発環境とそのバージョンも明示した方が良いですよ。>未来さん

正しい認識エンジンさえ選んであれば、ブロック体でも筆記体であっても、
英文として認識されるはずです。

そのための Recognizer の列挙コードを snowmansnow さんが紹介されていますが…
GetEnumerator を直接呼び出すのは稀なので(VBA でいうと IEnumVARIANT にあたる)、
コードを少し書き直してみました。横からすみません。

InkEdit の他に、ComboBox と ListBox を用意しておいてください。
ComboBox は認識エンジンを選択するもので、
ListBox は、そのエンジンがどの言語をサポートしているのかを確認するためのものです。

Imports Microsoft.Ink
Imports System.Globalization
Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'ListBox1.DisplayMember = "Name" 
        'ListBox1.DisplayMember = "NativeName" 
        ListBox1.DisplayMember = "DisplayName"
        'ListBox1.DisplayMember = "EnglishName" 

        'ComboBox1.DisplayMember = "Id" 
        ComboBox1.DisplayMember = "Name"
        ComboBox1.DataSource = New Recognizers().OfType(Of Recognizer)().ToArray()
    End Sub
    Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
        InkEdit1.Recognizer = TryCast(ComboBox1.SelectedItem, Recognizer)
        ListBox1.DataSource = InkEdit1.Recognizer.Languages.Select(AddressOf CultureInfo.GetCultureInfo).ToArray()
    End Sub
End Class



なお、既定では英語専用の手書き認識エンジンはインストールされていませんので、
必要に応じて追加してください。Windows 10 であれば、スタートメニューの
[設定]-[時刻と言語]-[言語]で確認できます。