TextAreaのデフォルト右クリックを継承または上書きしたかったが、できなかった。
成果物

対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch(9.0) 2018-06-27
- Mono 5.16.0
- MonoDevelop 7.6 build 711
- Eto.Forms 2.4.1 拡張機能, NuGetパッケージ
- .NET Core 2.2, MonoDevelop参照方法
参考
ソースコード
MainForm.cs
using System;
using Eto.Forms;
using Eto.Drawing;
namespace HelloDDynamicLayoutContextMenu
{
public partial class MainForm : Form
{
private TextArea textArea1;
private ContextMenu textArea1Menu;
public MainForm()
{
Title = "DynamicLayout.ContextMenu";
ClientSize = new Size(800, 600);
textArea1 = new TextArea() { Width=800, Height=600 };
textArea1Menu = new ContextMenu();
Command showDialog = new Command();
showDialog.MenuText = "ダイアログ表示";
showDialog.Executed += (object sender, EventArgs e) => {
MessageBox.Show("ダイアログを表示します。");
};
textArea1Menu.Items.Add(showDialog);
var layout = new DynamicLayout();
layout.Add(textArea1);
layout.ContextMenu = textArea1Menu;
Content = layout;
}
}
}
問題
Eto.Forms.TextAreaにはデフォルトで右クリックメニューがある。だが、これをコードから参照することができない。
所感
何か解決方法はないものか……。
ハイライトできるテキストエディタを諦めたが、標準のTextAreaが無能すぎる。