コンポーネントにListを使った自作プロパティを作ろうと
思ってます。
試しに作ってみて、フォームに貼り付けるところまではいいんですが、
その後に一度でもビルドをするとエラーになってしまって、
うまく動作させることができません。
エラーはエラーメッセージが出力されるのではなく、
フォームデザイナー上でおかしなHTMLが出力されるものです。
どうしたらうまくいくのでしょうか?
【ソース】
public partial class Component1 : TextBox
{
public Component1()
{
InitializeComponent();
}
public Component1(IContainer container)
{
container.Add(this);
InitializeComponent();
}
private List<TestData> _test = new List<TestData>();
[Browsable(true)]
public List<TestData> Test
{
get { return _test; }
set { _test = value; }
}
}
[Serializable]
public class TestData
{
private string extensions = "*.*";
public string Extensions
{
get { return extensions; }
set { extensions = value; }
}
private string displayText = "すべてのファイル";
public string DisplayText
{
get { return displayText; }
set { displayText = value; }
}
public override string ToString()
{
return DisplayText;
}
}
【エラー内容】
<html><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"><title></title><style>.ErrorStyle { font-family: tahoma; font-size: 11 pt; text-align: left}.DetailsStyle { font-family: tahoma; font-size: 10pt; text-align: left;text-indent: 0; word-spacing: 0; line-height: 100%; float: left; margin-top: 0; margin-bottom: 0}.StackStyleVisible { font-family: tahoma; font-size: 10pt; text-align: left; margin-left: 20; text-indent: 0}.StackStyleHidden { display:none; font-family: tahoma; font-size: 10pt; text-align: left; margin-left: 20; text-indent: 0}</style></head><body><DIV class="DetailsStyle" width="100%"><table border="0" width="100%" id="table1" height="100%" cellspacing="0" cellpadding="0"><tr><td height="40" bgcolor="#FF9999" width="8%" style="letter-spacing: 0" align="center"><img border="0" src="C:\Documents and Settings\yamaguti\Local Settings\Temp\27043E.tmp" width="35" height="35" alt="ErrorImage" ></td><td height="40" bgcolor="#FF9999" width="91%" style="vertical-align: top; letter-spacing: 0" align="left"><b><font size="2" face="Arial" fontsize="70%">繝・じ繧、繝翫・隱ュ縺ソ霎シ縺ソ譎ゅ↓ 1 縺、莉・荳翫・繧ィ繝ゥ繝シ縺檎匱逕溘@縺セ縺励◆縲ゅお繝ゥ繝シ縺ッ莉・荳九↓荳隕ァ陦ィ遉コ縺輔l縺セ縺吶ゅさ繝シ繝峨・螟画峩縺悟ソ・ヲ√↑繧ィ繝ゥ繝シ繧ゅ≠繧翫∪縺吶′縲√・繝ュ繧ク繧ァ繧ッ繝医r蜀榊コヲ繝薙Ν繝峨☆繧九→隗」豎コ縺ァ縺阪k繧ィ繝ゥ繝シ繧ゅ≠繧翫∪縺吶�</font><font size="2" face="Arial"></font></b></td></tr><tr><td colspan="2" align="left" valign="top"><DIV id="div1" class="ErrorStyle" width="100%"><span style="font-weight: 600"><br>蝙� 'WindowsApplication1.TestData[]' 縺ョ繧ェ繝悶ず繧ァ繧ッ繝医r蝙� 'WindowsApplication1.TestData[]' 縺ォ螟画鋤縺ァ縺阪∪縺帙s縲� </span><br><a href="" id="details0">髱櫁。ィ遉コ</a><font color="#0000FF"> </font></DIV> </td> </tr> <tr><td colspan="2" align="left" valign="top"><DIV id="div20" class="StackStyleVisible" width="100%"><br> 蝣エ謇 System.RuntimeType.CheckValue(Object value, Binder binder, CultureInfo culture, BindingFlags invokeAttr)<br> 蝣エ謇 System.Reflection.RtFieldInfo.InternalSetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, CultureInfo culture, Boolean doVisibilityCheck, Boolean doCheckConsistency)<br> 蝣エ謇 System.Reflection.RtFieldInfo.InternalSetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, CultureInfo culture, Boolean doVisibilityCheck)<br> 蝣エ謇 System.Runtime.Serialization.FormatterServices.SerializationSetValue(MemberInfo fi, Object target, Object value)<br> 蝣エ謇 System.Runtime.Serialization.ObjectManager.CompleteObject(ObjectHolder holder, Boolean bObjectFullyComplete)<br> 蝣エ謇 System.Runtime.Serialization.ObjectManager.DoNewlyRegisteredObjectFixups(ObjectHolder holder)<br> 蝣エ謇 System.Runtime.Serialization.ObjectManager.RegisterObject(Object obj, Int64 objectID, SerializationInfo info, Int64 idOfContainingObj, MemberInfo member, Int32[] arrayIndex)<br> 蝣エ謇 System.Runtime.Serialization.Formatters.Binary.ObjectReader.RegisterObject(Object obj, ParseRecord pr, ParseRecord objectPr, Boolean bIsString)<br> 蝣エ謇 System.Runtime.Serialization.Formatters.Binary.ObjectReader.ParseObjectEnd(ParseRecord pr)<br> 蝣エ謇 System.Runtime.Ser
No.2ベストアンサー
- 回答日時:
デザイナーに対するシリアル/デシリアルの方法を指示すればいいみたいです
ComponentクラスのTestプロパティの属性指定に
DesignerSerializationVisibility(DesignerSerializationVisibility.Content)
を追加してやればいいみたいですよ
できました!!!ありがとうございます。
ただ、調べてみても深い内容なようで、全く理解できないままですが・・・。
書籍類も、大体がアプリケーション作成がメインだったりして、
コンポーネント作成について深く突っ込んでくれてる書籍があると
大変嬉しいのですが、未だ出会っておらず、プロパティ制御には
毎度苦慮しております。
コードの意味及び記述すべきタイミングについては別途調べてみます。
今回は大変ありがとうございました。
No.1
- 回答日時:
TestDataクラスのシリアル化の実装が原因のようですよ
具体的な解決方法までは持ち合わせておりませんが …
resxファイルに格納された コンポーネントのTestプロパティの項目を読み込む際にエラーになっているようです
ためしに
private string extensions = "*.*";
と
private string displayText = "すべてのファイル";
を
[NonSerialized]属性を与えてやると フォームで項目を追加した後でも エラーにならないようです
この回答への補足
うーん、ダメでした・・・。
フォームに追加した直後は問題ないのですが、リビルドを行うと
同じようにエラーになってしまいます。
パースにミスってるんだろうなというのは何となくわかったのですが、
じゃあどう対処すればいいのかというのが分からず困ってます・・・。
[Serializable]
public class TestData
{
[NonSerialized]
private string extensions = "*.*";
public string Extensions
{
get { return extensions; }
set { extensions = value; }
}
[NonSerialized]
private string displayText = "すべてのファイル";
public string DisplayText
{
get { return displayText; }
set { displayText = value; }
}
public override string ToString()
{
return DisplayText;
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- その他(パソコン・スマホ・電化製品) ウィンドウ11 メモ帳が文字化けしました。 5 2022/08/06 08:42
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- その他(コンピューター・テクノロジー) 陜暦スウ隴厄スク鬯「・ィDP 15隴鯉ス・騾カ・ョ邵コ・ッ邵イ竏晢ス、髢蠏憺坡讒ォ・ュ・ヲ驗吝・繝 1 2023/06/21 18:00
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
tableタグとformタグの組み合わせ
-
html でのテキスト結合について
-
テーブルの一部分のセルだけに...
-
同じクラス名はつけないほうが...
-
Tableタグで作成した表の縮小
-
XHTMLに関する質問 順序が逆に...
-
Firefoxを使ってるのですがズー...
-
td要素内のdiv要素をセンタリン...
-
td width="180" と固定してるの...
-
trとtrの間
-
<img>タグにCSSのclass設定可能?
-
文字コードをEUCからSHIFT-JIS...
-
divで囲んだ文字が消える
-
自動的に空欄を埋めれるように...
-
テーブルタグの横のスペース
-
テーブルのセル内の隙間を取れ...
-
テーブルタグの中にdivを含めて...
-
テーブルの位置を細かく指定し...
-
TABLEのセルの中の文字を行単位...
-
テーブルの横に画像を
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
html でのテキスト結合について
-
tableタグとformタグの組み合わせ
-
テーブルの一部分のセルだけに...
-
同じクラス名はつけないほうが...
-
formのinputなどの幅100%指定
-
divで囲んだ文字が消える
-
td要素内のdiv要素をセンタリン...
-
XHTMLに関する質問 順序が逆に...
-
テーブル内のテーブルの高さを...
-
td width="180" と固定してるの...
-
Tableタグで作成した表の縮小
-
Tableタグ内のspan styleが適応...
-
cssで、テーブルのtdの中の文字...
-
table内の画像を中央寄せ、のせ...
-
<img>タグにCSSのclass設定可能?
-
Firefoxを使ってるのですがズー...
-
表とリスト(ulとtable)の違い...
-
trとtrの間
-
同じwidth=200でもセル内の文字...
-
HTMLのテーブルでそれぞれの大...
おすすめ情報