問題タブ [ondrawitem]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2841 参照

winforms - 右揃えの TabControl の縦書きテキスト

タブコントロールの各タブのテキストを垂直に表示しようとしています。私はコントロールに踏み込んだことがないので、ちょっと行き詰まっています。左に回転したかのようにテキストを表示するコードを見つけました。タブ上で右(縦)に回転したように表示したい。スケルトン コードは次のとおりです。

0 投票する
2 に答える
9044 参照

c# - ListBox の DrawItem のオーバーライド - 選択されていない項目は再描画されません

これは C# デスクトップ アプリケーションです。myのDrawStyleプロパティListBoxは に設定されていOwnerDrawFixedます。

問題: DrawItem をオーバーライドして、異なるフォントでテキストを描画すると、機能します。しかし、実行時にフォームのサイズ変更を開始すると、選択したアイテムは正しく描画されますが、残りのアイテムは再描画されず、選択されていないアイテムのテキストが破損しているように見えます。

これが私のコードです:

また、正しく描画されたアイテム (選択されたアイテム) は、フォームのサイズ変更時にちらつきます。大したことではありませんが、誰かが理由を知っていれば.... tnx

0 投票する
1 に答える
1407 参照

winapi - 所有者の描画リストボックスのDrawItemメソッドを呼び出せないのはなぜですか

WTLを使用して所有者描画リストボックスを作成しようとしています。私のコードは次のようになります

また、親のメッセージループに追加REFLECT_NOTIFICATIONSし、プロパティシートで[所有者の描画]を[固定]に設定しました。しかし、それでもメッセージを受信できません。次に、spy ++を使用してリストボックスが受信するメッセージを調べたところ、非常に奇妙なメッセージが見つかりました(WM_USER+7211)。
私のOSはWinXpで、VS2008を使用しています。

0 投票する
2 に答える
19137 参照

vb.net - カスタム ComboBox (OwnerDrawFixed) を標準の ComboBox のように 3D に見せる方法は?

Winforms の標準 ComboBox から継承したカスタム ComboBox を作成しています。カスタム ComboBox では、 と を に設定しDrawModeました。次に、独自のメソッドを記述します。しかし、私は次のようになりました:OwnerDrawFixedDropDownStyleDropDownListOnDrawItem

標準とカスタムのコンボボックス

カスタム ComboBox を標準の ComboBox のようにするにはどうすればよいですか?


更新 1: ButtonRenderer

あちこち探した後、ButtonRendererクラスを見つけました。DrawButton名前が示すように、適切な 3D ボタンを描画する静的/共有メソッドを提供します。私は今それを実験しています。


更新 2: コントロールを上書きするものは何ですか?

考えられるさまざまなオブジェクトの Graphics プロパティを使用してみましたが、常に失敗します。最後に、フォームのグラフィックスを試してみましたが、どうやらボタンが上書きされているようです。

コードは次のとおりです。

結果は次のとおりです。

上書きされた ButtonRenderer

に置き換えるMe.Parent.CreateGraphicsと、e.Graphics次のようになりました。

Clipped ButtonRenderer

そして、上記の + を次のように置き換えるMe.ClientRectangleと、e.Bounds次のようになりました。

縮小ボタンレンダラー

メソッドに使用する必要があるグラフィックスを教えてくれる人はいますか?ButtonRenderer.DrawButton

PS: 青みがかった境界線は、PushButtonState.Normal の代わりに PushButtonState.Default を使用しているためです。


答えが見つかりました!(下記参照)

0 投票する
2 に答える
3087 参照

.net - コンボボックスにFontFamilyを表示するには?

コンボボックスがあり、システムで使用可能なすべてのフォント (実際の名前、スタイルなど) を入力する必要があります...

オンラインで見つけることができるすべての情報から、 DrawItemイベントをまとめることができますが、「非デリゲート型 'System.Drawing.Font' を呼び出せません」というエラーが発生し続けます。他のウェブサイトからの行といくつかの変更を加えました。だから、私はそれがうまくいくはずだと思った。

ComboBox に項目リストを設定する方法は次のとおりです。

以下は、combobox4 drawitem イベントです。

更新: エラーの原因となった行を修正したところ、エラーなしでコンパイルできるようになりましたが、コメントで述べたように、独自のスタイルとサイズでフォントを描画していません。

更新: DrawMode を OwnerDrawFixed に設定するのを忘れていました。今は DrawItem イベントを呼び出していますが、独自のスタイルとサイズでフォントを描画していません。

コンボボックスを次の画像のようにしたい:

他人のコンボボックス

以下の私のようではありません:

コンボボックス付きのwinformの実際の画像

0 投票する
1 に答える
2318 参照

c# - コンボボックスの OwnerDraw DrawItem イベントも Text プロパティ値を変更します

私の質問は基本的に、WinForms の ComboBox に DrawItem を実装して、Text プロパティを変更しますか?

私のOwnerDrawイベントは、Textプロパティ「また」がItems []のすべてのアイテムと同じロジックに設定されることを除いて完全に機能するためです(つまり、以下のDrawItemイベントで実装されます)

コンテキストのために、リストに URL を示しますが、いくつかは非常に長いので、基本的にそれらを切り捨てて、最後にテキスト「...」を付けて、読みやすくします。クラス「DisplayUrl」の 1 つのプロパティをレンダリングするように DataSource を設定しましたが、実際の値には別の「Url」を使用します。(以下の MyUrl)

一部のコードの最後で、明示的に cmbUrl.Text = "THE FULL TEXT" を設定しました

しかし、どういうわけか、DrawItem イベントは "Text" プロパティにも影響を与えています。これは、このコードを実行した後でも、DrawItem イベントが終了すると、Text プロパティが Item[0] と同じに設定されるためです。つまり、「THE FULL T...」のように、テキストが切り取られています。

0 投票する
2 に答える
3995 参照

winforms - CheckedListBox で DrawItem イベント ハンドラーを使用できますか?

チェックされたリスト ボックスにアイテムが追加されたときに表示されるテキストを上書きしたいと考えています。現在、obj.ToString() を使用していますが、オブジェクトの ToString メソッドを変更せずにテキストを追加したいと考えています。ListBox の DrawItem イベントを処理する例を見てきましたが、それらを実装しようとすると、イベント ハンドラーが呼び出されません。Winforms デザイナーでは、DrawItem イベントのハンドラーを割り当てることができないようです。頑固なので、自分でコードを追加しただけです

私は不可能なことをしようとしていますか?

0 投票する
0 に答える
862 参照

c# - OnDrawItem (CheckedListBox) をオーバーライドする

カスタマイズされた CheckedListBox クラスに問題があります。OnDrawItem をオーバーライドしてカスタム ComboBox クラスを使用するコードを取得しました (画像を含めるため)。私の目標は、アイテムがカスタム ComboBox の代わりに CheckedListBox クラスに表示されるように外観を変更することです (写真を含めるためにオーバーライドも使用)。問題は、写真が正しく表示されないことです。アイテムをクリックしてマウスを押したままにするか、リストボックスをスクロールするまで、写真はまったく表示されません...また、コードでチェックを外した後でも、チェックされたアイテムはチェックされたままになりますランタイム (視覚的にのみ、論理的には問題ありません)。何が起こっているのか分かりますか?

}

0 投票する
1 に答える
1373 参照

mfc - MFC の CMenu 境界線の色

CMenu Owner draw menuから継承するクラスがあります

このクラスを使用すると、メニューは正しく表示されますが、たとえば、メニュー FILE を開くと、標準のメニュー色の境界線とセパレーターが表示されます

希望の色のこの部分もどのようにペイントできますか?

画像の下に、選択した色 (緑) のファイルのサブメニューと、境界線/スペーサーに灰色の標準 Windows メニューが表示されます。

ここに画像の説明を入力