2019-11

スポンサーリンク
DockPanel Suite

【C#】DockPanel Suiteの使い方 ~実装編~

DockPanel Suiteが思った以上にすごかったので自作テキストエディタにも導入してみました。2006年にリリースされているのですが、情報が少なくて苦労しましたがファイルを選択するエクスプローラーをドッキングウィンドウにするところまで...
0
DockPanel Suite

【C#】DockPanel Suiteの使い方 ~導入編~

前々から気になっていたドッキングウィンドウですが、ずーっと放置していました。自作エディタにも導入できるか試してみたかったので実際に使ってみました。 ドッキングウィンドウとは? Visual Studioのような、ウィンドウをメインの画面から...
0
C#

【C#】フォームの中にフォームを表示する方法

通常はフォームの中にフォームを表示するのは MDI になるのですが、そうではなく、フォームの中にコントロールのようにフォームを表示する方法です。フォームのため、移動やサイズ変更もできます。また、フォーム上のコントロールの中に表示することもで...
0
スポンサーリンク
C#

海外の方の反応が見たくてC#のダークモードアプリの動画をアップしてみました

2019年の10月にYoutubeチャンネルを作りました。チャンネルを作った目的は動画を作ってみたかったのと、自作エディタの作業状況を動画で残したかったたためです。 やってみてわかったのは、大きな機能追加したりするといいのかもしれないんです...
0
C#

【C#】タイトルバーを独自に実装してダークモードを適用する方法

Windows Formアプリケーションのタイトルバーの色を変更したいと思ったことはありませんか?そうなんですよね。ずっと変更する方法を探していました。【C#】メニューにダークモードテーマを適用するの続きになります。 前回から、他の人が作っ...
0
テキストエディタ開発

ExtTextOut の最大描画可能文字数と描画速度について

自作エディタの文字の描画は Win32Api の ExtTextOutW を利用しています。先日1行が 32 万文字を表示させると、描画されないことがあったので、ExtTextOutW の描画文字数を超えているのでは?っと思い調べてみました...
0
C#

【C#】Stripper Ver 2.0.2を公開

.NET の Windows フォームアプリケーションのメニューバー、ツールバー、ステータスバーの配色はカラーテーブルとして公開されていますが、実際どの箇所の色かがわかりにくいため、画面で確認しながら自由に配色できるツールを作成しました。 ...
0
C#

【C#】タブコントロールに閉じるボタンを付ける方法

標準ではタブの閉じるボタンは用意されていないため、独自に閉じるボタンを描画する処理が必要になります。 オーナードローによる描画でもいいのですができれば外観を変えたくないため WndProc で WM_PAINT メッセージ発生時に描画します...
0
テキストエディタ開発

三点リーダーの使い方と…ボタンの深い意味

自作エディタのオプション画面に「設定」ボタンを付けたかったんですが、ChromeとかEdgeのアドレスバーの右に設定のアイコンがあるじゃないですか?そのアイコンが、三点リーダーになってますよね?なんで三点リーダーなん?って調べた内容です。 ...
0
C#

【C#】タブコントロールのタブを移動可能にする方法

標準のタブコントロールはタブの移動(入替え)はできません。そのため OnDragEnter、OnDragOver、OnDragDropイベント等で独自に実装します。 サンプルではドラッグでタブが移動しボタンを離すことでタブの入れ替えが可能で...
0
C#

【C#】ウィンドウをアクティブにしてメニューを開く方法

ウィンドウが非アクティブな状態でメニューをクリックしてもウィンドウがアクティブになるだけで メニューを開くことはできません。これを1クリックでウィンドウをアクティブにしてメニューを開く方法です。 サンプルソース 非アクティブウィンドウ上でマ...
0
C#

【C#】1000万行もOK!Listの追加、削除の性能を自作エディタで検証した結果

前回、自作テキストエディタのテキスト管理方法について記事にしました。今回は実際に行追加と行削除をした場合、処理性能はどうなのかを自作エディタで検証してみました。結論としては、実行するPCのマシンスペックにもよりますが、List で管理しても...
0
C#

【C#】MDIの子フォーム最大化時のメニューバーに表示されるアイコンを消す方法

自作エディタがMDIの時に、フォームのタイトルバーとメニューバーに同じアイコンが表示されるのが気にいらなかったので消す方法を調べた内容です。 MDI の子フォームを最大化するとメニューバーに子フォームのアイコンと最小化、元に戻す、閉じるの4...
0
C#

【C#】MDIの子フォームの表示時のチラツキをなくす方法

自作エディタの開発当初は MDI で作成していました。色々実装が大変だったのと子フォーム表示が遅いため、最終的にはタブ形式になりました。その当時に悩んだ子フォーム表示時のチラつきをなくす方法です。 最近減りましたね MDI のアプリ。あの代...
0
テキストエディタ開発

完全差分折り返しで折り返し最速を目指します

クリップボードのエラーをキャッチできるようにしてから、その後一回も発生しないんで、なんでなん?って思いながら折り返しのテストを進めています。もーすぐ終わりそうなんですが、1個気になる点が…。 気になる点 自作エディタは折り返し情報を差分で作...
0
テキストエディタ開発

クリップボードのエラーがようやく解決できるかも

前々から発生していたクリップボードのエラー。原因は他のアプリとクリップボードの操作が競合すると発生するとのこと。発生してもキャッチできないので急に落ちちゃうんですよね。回避策が無くて困っていましたが、何気に検索してたらキャッチする方法を見つ...
0
テキストエディタ開発

自作テキストエディタ(OTZEditorコントロール)の行管理方法

さくさくエディタの作者さんの記事を読んで、テキストの持ち方を改めて考えてみたんですがテキストを保持する方法として「配列」、「双方向リスト」、「ギャップバッファ」が一般的とのこと。自作エディタは何なのか?って話です。う~ん。よくわからないです...
0
QooQカスタマイズ

【QooQ】トップ画面(記事一覧)の横幅を変更する方法【カスタマイズ】

記事一覧が表示されているメイン画面の横幅を変更する方法です。スマホだといい感じなんですがPCで見ると若干、幅が広いかなって思う人向けです。本ブログはQooQのリスト形式を利用していますが、通常版も同様の修正で変更できます。 表示幅は Qoo...
0
テキストエディタ開発

現在の開発状況と今後の対応

もうあれですね。ブログやっちゃうと開発時間削られてますます進捗に影響出ちゃいますね。現在は折り返しを実装しているんですが、行跨ぎのハイライト以外はほとんど終わっています。 今はキャレットが見えないところで、DELキーとか、文字入力したりして...
0
テキストエディタ開発

1行32万文字の行末移動と折り返し

1行32万文字を色々試してたら、java scriptみたいなハイライトとかコメントとかを判断する必要のあるテキストの行末移動はめちゃくちゃ遅いです。試しに普通のテキストで確認してみました。そうなんですよ。そこまで遅くないんですよね。ただ、...
0
C#

【C#】多重起動を禁止し起動アプリにパラメータを渡す方法

多重起動を禁止し起動アプリに引数を渡す方法です。テキストエディタだと定番の処理ですね。プロセス間通信を利用しています。参照設定に System.Runtime.Remoting を追加します。自作エディタもこの方法で実装しています。 サンプ...
0
スポンサーリンク