Eto.Forms.DynamicLayout.ContextMenuを使ってみた
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が無能すぎる。