問題タブ [custom-controls]

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 投票する
3 に答える
512 参照

c# - Winforms を使用して複雑なアイテムのリストを表示および保存するにはどうすればよいですか?

複雑なアイテムのリストを保存して表示したいと思います。各 (グラフィック) アイテムは、画像、カラー チップのリスト、ラベル、およびインデックス (文字) を表示する必要があります。ユーザーは、各アイテム内でズームして、画像の詳細を (マウスホイールで) 表示することもできます。

アイテムは、スクロール可能でサイズ変更可能な垂直リストで表示されます。

言語は、必要な場合のみ C#、.net2.0、または 3.5 です。

アイテムにカスタム UserControls を使用することを考えています (それぞれ、PictureBox、2 つのラベル、およびカラー チップを表示するためのカスタム UserControl で構成されています)。リストについては、ListBox、ListView、DataGridView、またはまだ知らない別のものから何を選択すればよいか本当にわかりません。

私は基本的に、その単純さのために ListBox を使用します。他のリストを使用する利点を明確にするのを手伝ってもらえますか?

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

vb.net - ファイルのリストを表示するのに最適な VB.NET コントロール (標準/カスタム) は何ですか?

私は VB.NET でデスクトップ検索エンジンを開発しています。検索結果、つまりファイルのリストを表示するための強力で柔軟で機能豊富なコントロールを探しています。

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

c# - Margin と Padding は ContentControl によって実装されていますか?

System.Windows.Controls.ContentControl から派生したカスタム コントロールを開発しています。コントロールの既定のテンプレート (themes\generic.xaml) では、実際のコンテンツをラップする Border 要素を使用します。

カスタム コントロールは既にマージンとパディングを実装していますか (つまり、カスタム コントロールに設定されたパディングに従って境界線を縮小します)、またはマージンとパディングが適用される場所を自分で決定できますか (つまり、マージンとパディングのプロパティをボーダー要素{TemplateBinding Margin}など

前もって感謝します!

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

c# - ユーザー制御用のデータソース

ユーザーコントロールを構築しています。現在、学習体験として、テキストボックスとボタンで構成されています。これは、より有用な制御の基礎として使用されます。

DataSource、display member、ValueMemberを追加したいと思います。
これがデータソースの私のコードです。プロパティエディタに表示されますが、無効になっており、グレー表示されています。私は何が欠けていますか?

0 投票する
5 に答える
3270 参照

c# - ComboBox から派生したカスタム コントロールのテスト

ComboBox から派生したコントロールを作成し、その動作を単体テストしたいと考えています。

ただし、単体テストでは、実際のアプリケーションでの動作とは異なる動作をしているようです。

実際のアプリケーションでは、Combobox.DataSource プロパティと .Items が同期します。つまり、Combobox.DataSource を変更すると、.Items リストがすぐに自動的に更新され、DataSource の各要素の項目が表示されます。

私のテストでは、ComboBox を構築し、それにデータソースを割り当てますが、.Items リストはまったく更新されず、0 項目のままです。したがって、テストで .SelectedIndex を 0 に更新して最初の項目を選択しようとすると、ArgumentOutOfRangeException が発生します。

これは、イベント ループを開始する単体テストに Application.Run がないためですか、それともちょっとしたニシンですか?

編集: 最初のテストの詳細:

SelectedIndex を 0 に設定しようとすると、テストは最初の行で失敗します。ただし、実際のアプリケーションのデバッグでは、.DataSource が変更されると、.Items コレクションは常に更新されます。

確かに、テストで ComboBox を実際にレンダリングする必要はありません。レンダリングするための描画サーフェスをセットアップする必要さえありません。おそらく、私が必要とする唯一の答えは、「実際にボックスを描画する必要がない単体テストシナリオで、描画されたときと同じ方法で ComboBox を更新するにはどうすればよいですか?」ということです。

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

asp.net - エラー レンダリング コントロール キャッシュが利用できません

データベースから取得した値 (製品の価格) を表示するカスタム コントロールがあります。この値はパフォーマンス上の理由からキャッシュに保存され、正常に機能します。ただし、Visual Studio 2008 のデザイン モードでは、「エラー レンダリング コントロール。ハンドルされていない例外が発生しました。キャッシュが利用できません」というエラーが表示されます。

非常に単純な GetDesignTimeHtml を使用して、ControlDesigner を使用しています。

これで問題が解決することを願っていましたが、そうではありません。

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

c# - サブクラスの組み込みのWinFormsコントロール?

Visual Studioで、[新しい継承されたユーザーコントロールの追加]を使用してカスタムコントロールのサブクラスを自動生成する機能に出くわしました。

しかし、たとえばButtonのサブクラスを作成する方法についての明確な説明は見つかりませんでした。それを行う実際の方法とは別に、VSがこれに役立つコード生成を提供するかどうかにも興味がありますか?

0 投票する
3 に答える
806 参照

user-interface - 相対パーセンテージUIコントロール

ユーザーは、常に合計が100%になるパーセンテージ値の数を設定する必要があります。これをアーカイブするための標準的な方法は何ですか?私は次のことを思いついた:

1)設定する必要のある値ごとに標準のスライダーコントロールを用意します。1つのスライダーを動かすと、他のすべてのスライダーが自動的に調整されるため、合計は常に100%になります。横にチェックボックスが表示されている個々のスライダーを修正できます。残りの「無料」のスライダーのみが調整可能です。

Pro:ユーザーがすでに知っている標準ウィジェットで完全に構成されています

短所:多くのウィジェット、多くの画面領域が使用され、スライダーが多く、パーセンテージ値が低い場合、見栄えが悪くなります。100%への正規化はすぐにはわかりません。

2)いくつかのスライドノブを備えたスライダーコントロールがあります。

長所:スライダーの長さが固定されているため、正規化は暗黙的かつ明白であり、相対的な重みが一目でわかります

短所:非標準、ノブは互いに簡単に重なる可能性があり、ノブは簡単に修正できず、間隔/パーセンテージごとにテキスト/数値表現を配置する明確な場所がありません

3)標準の円グラフを表示します。

長所:正規化は暗黙的かつ明白であり、相対的な重みは見やすいです

短所:インタラクティブな使用には非標準、直感的なスライスのサイズ変更を機能させるのが難しい、各スライスのテキスト/数値表現を配置する場所がない

4)...?

私はこれらのどちらにも満足していないので、ここで私の質問をします。より良いアイデアはありますか?私はリッチウィンドウクライアント(つまりWebではない)で3〜10個の個別のパーセンテージ値を扱っています。

乾杯、

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

c# - カスタム TextBox コントロールと検証表示

RequiredFieldValidator も含むカスタム TextBox コントロールを作成しました。すべて正常に動作しますが、問題は表示されています。表示は次のようなものです。

表示を次のようにしたい: (検証エラーメッセージはテキストボックスの上部にあるはずです)

私のコントロールは TextBox コントロールを継承しています。上記のような表示を作成するにはどうすればよいですか。Table コントロールを使用して、TextBox と Validation コントロールを Table 内に挿入しようとしましたが、何らかのスタック オーバー フロー エラーが発生しました。

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