問題タブ [visual-inheritance]

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 に答える
80 参照

forms - DB コンポーネントまたは新しいコンポーネントの視覚的な継承?

ADOModule、SDACModule、AstaModule の 3 つの異なる DataModule があります。使用する DB コンポーネント (ADO、SDAC、Asta) を除いて、すべて同じです。

これらの DataModule はすべて同じ仕事をしますが、異なるコンポーネントを使用します。つまり、すべての内部選択と実行は同じです。

私が探しているのは、このすべての DataModules を 1 つの BaseDataModule に結合し、ADOModule、SDACModule、および AstaModule のそれぞれを強制的に BaseDataModule から継承させる方法です。

メソッドとプロパティを継承するのは簡単だと思いますが、コンポーネントから継承するのは初めてです。そうするための良い方法はありますか?プロジェクトの目標: コーディングとコピーと貼り付けを最小限に抑えます。

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

c# - ベース BindingSource を派生フォーム データソースとして使用する

「BaseSource」という名前Formのパブリック プロパティを持つベースがあります。BindingSourceそのDataSourceプロパティは、ビジネス オブジェクト タイプに設定されます。

そこから派生フォームを作成すると、デザイナで「BaseSource」にアクセスでき、派生フォームのコントロールをビジネス オブジェクトのプロパティにバインドできると考えました。

BindingSourceデザイナーのコンポーネント トレイにドラッグされた他のオブジェクトと同じように、デザイナーが "BaseSource" インスタンスを参照できるようにするために、何か特別なことをしなければなりませんか?

アップデート:

以下のコメントに記載されているアイデアを試してみましたが (フィードバックに感謝します)、残念ながらうまくいきませんでした。と 2 つのプロジェクトを使用しました。1 つは基本フォームとビジネス オブジェクト クラスを保持し、もう 1 つは派生フォームを保持します。基本フォームは、タイプ のBaseBindingSourceBindingSourceという名前の保護されたプロパティを公開します。ベース フォームのコンストラクターで、そのベース バインディング ソースのDataSourceプロパティを の新しいインスタンスに設定しますList<BusinessObject>。プロジェクトは問題なくコンパイルされますが、派生フォームのデザイナーでは、使用可能なデータ ソースとしてBaseBindingSourceにアクセスできません。

このプロパティを公開しても役に立ちませんでした。

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

c# - ベース UserControl の修飾子を保護に設定すると、Visual Studio がクラッシュする

ユーザー コントロール クラスとから派生しBaseUserControlたクラスがあります。どちらも、ソリューションを再構築した後も、Visual Studio Designer に正しく表示されます。DerivedUserControlBaseUserControl

BaseUserControlは、protectedラベルとその他のprotectedコントロールがあります。派生コントロール用に非表示にしたかったこのラベル。DerivedUserControlそこで、 で使用されていないことを保証するために、ユーザー コード ファイルとデザイナー コード ファイルでその名前を検索しましたがDerivedUserControl、出現は見つかりませんでした。次に、このラベルの修飾子をBaseUserControlfromprotectedのデザイナーで非表示に設定privateします。他のコントロールやコード ファイルは変更していません。

次に、ソリューションを再構築し、 の設計者に見せたいと思いDerivedUserControlます。しかし、Visual Studio がクラッシュしました。

protectedそのため、 のデザイナー コード ファイルで、ハンドごとのラベル修飾子を にリセットすることで問題を解決しようとしましたBaseUserControl。しかし、Visual Studio を再構築しても、.NET のデザイナーを開くと、常にクラッシュしDerivedUserControlます。

Microsoft Visual Studio Ultimate 2012 バージョン 11.0.61030.00 Update 4 と Microsoft .NET Framework バージョン 4.5.50938 を持っています。

この問題を解決するためのアイデアはありますか?

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

c# - WinForms MDI 継承フォームは、親で異なるプロパティ値を持っていますか?

従来の winforms アプリケーションのメンテナンスを行っています。このプロジェクトはフォームの継承を使用しているため、私の仕事ははるかに簡単になりますが、奇妙な問題があります。設定は次のとおりです。
FormBase : Form
FormBaseList : FormBase
FormClientList : FormBaseList

私が今抱えている問題は、プロパティ WindowsState にあります。
新しい FormClientList を作成します。

最大化ボタンをクリックすると、最大化されます。
これで、FormClientList に (デバッグ目的で) ボタンがあり、プロパティ WindowState の値が表示され、予想どおり、最大化された状態で返されます。

FormBaseList には、このプロパティの値を知る必要があるコードがいくつかありますが、ここでは、最大化ではなく、常に通常を返します。コードは、別のフォームを作成する datagridview のダブルクリックにあります。

したがって、このフォームのインスタンスは、テストコードを実行するクラスに応じて、このプロパティの値が異なるようです。

これを修正するにはどうすればよいですか?

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

c# - 親フォームからコントロールを継承する C# 子フォーム

アプリケーションの編成方法は、基本フォームと、それを継承する複数の子フォームがあります。UI コントロールとして定義されたボタンもあります。UI コントロールを基本フォームに追加して、すべての子フォームもそのコントロールを持つことができるようにします。ただし、コントロールはすべての子フォームで同じでなければならないため、個々の子フォームをすべて台無しにしたくありません。これまでに行ったこと: baseFrom.cs のデザイナーにコントロールを追加しました。これにより、コントロールのすべてのプロパティを一覧表示する基本フォームに InitializeComponent() 関数が作成されました。基本フォームのコンストラクターで InitializeComponent を呼び出してみましたが、それでもどの子フォームにもコントロールが表示されません。ここで何が欠けていますか?