我創建了WindowsFormControlLibrary對象。它可以正常工作,我可以將它放在窗體上,調用它的方法等等。但是現在作爲它的一個屬性,我將一個標籤的名稱傳遞給它。並且我希望此自定義控件能夠使用該標籤名稱,例如將其字體更改爲粗體。 所以問題是,如果我有一個WinForm,並且在該窗體上有一個標籤,並且在該窗體上有我的自定義控件,那麼如何告訴我的自定義控件使用該標籤進行某些操作,我將其名稱傳遞給它?通過我的自定義控件訪問表單上的標籤
0
A
回答
1
首先,如果您想從UserControl
訪問Control
,則需要使用FindForm()
方法。
其次,您將被要求公開您的TextBox
控件,例如,通過您的表單的屬性。
然後,您需要知道此FindForm()
方法返回的此Form
的類型。
一旦你知道它,你需要輸入這個結果到正確的類型。
所以,這裏的樣本未經測試的僞代碼,讓您的想法:
public partial class MyMainForm {
private TextBox textBox1;
public MyMainForm() {
textBox1 = new Textbox();
textBox1.Name = @"textBox1";
textBox1.Location = new Point(10, 10);
textBox1.Size = new Size(150, 23);
this.Controls.Add(textBox1);
}
public Font MyTextBoxFont {
get {
return textBox1.Font;
} set {
if (value == null) return;
textbox1.Font = value;
}
}
}
然後,假設你有你的表格上下降了你的控制,你UserControl
可能有一個屬性,像這樣:
public partial class MyUserControl {
private Form GetContainerForm {
get {
return this.FindForm();
}
}
// And later on, where you need to set your TextBox's font:
private void SetContainerInputFieldFont(Font f) {
if (GetContainerForm == null) return; // Or throw, depending on what you need to do.
((MyMainForm)GetContainerForm).MyTextBoxFont = f
}
}
2
不是發送標籤的名稱,而是發送對實際標籤的引用,然後自定義控件可以在需要時讀取名稱並更改標籤的字體和其他屬性。
不過要小心,它可以迅速變得一團糟跟蹤,如果各種形式和控制更改其他形式等
編輯控件發生的事情的:增加了代碼,做你的意見要求什麼
代碼沒有經過測試,因此它可能不完全正確,但類似的東西應該工作。
foreach (Control c in Parent.Controls)
{
if (c is Label)
{
Label l = (Label)c;
// do stuff to label l
}
}
0
酷:)我剛剛添加了一個獲取類型爲Label的公共屬性...它自動列出了窗體上的所有標籤。
相關問題
- 1. 通過ID訪問自定義控件子控件
- 2. 自定義控件標籤
- 3. django通過自定義模板標籤訪問模板塊
- 4. 如何通過javascript訪問自定義JSF標籤getElementById
- 5. 如何從自定義控件中訪問表單控件
- 6. 訪問自定義表格單元格標籤
- 7. vb.net通過自定義對象訪問當前表單?
- 8. 菜單控件.ascx標籤訪問
- 9. 如何訪問asp.net中自定義控件中的內部標籤的屬性
- 10. C#從自定義函數訪問表單控件
- 11. 在通過的表格上訪問標籤
- 12. 如何通過c#在我們的表單中添加自定義控件
- 13. 通過視圖控制器訪問特定標籤
- 14. 通過jquery訪問自定義屬性
- 15. 訪問自定義控制
- 16. C#訪問標籤通過的HtmlElement
- 17. 通過JQuery更改表單標籤上的標籤
- 18. ASP.NET圖表控件:餅圖和自定義大小的標籤
- 19. 自定義DevExpress圖表控件的系列點標籤值
- 20. DevExtreme Angular2自定義標籤表單
- 21. 從自定義控件訪問ToolKitScriptManager/ScriptManager
- 22. ASP.NET自定義控件屬性訪問
- 23. 訪問彈簧:自定義標記的表單對象
- 24. 如何通過綁定通過自定義控件上的XAML傳遞CommandParameter
- 25. 訪問表單的事件過程自控與VBA在Excel
- 26. 通過選擇選項標籤自定義下拉菜單?
- 27. 從自定義控件訪問窗體的控件
- 28. Symfony2:自定義表單集合中的表單標籤
- 29. 如何在父類中訪問標籤表單用戶控件?
- 30. 通過自定義控件屬性或自定義控件的自定義事件傳遞函數?
有沒有一種方法可以調用FindContorl或類似的東西? – Bohn 2010-05-25 18:47:07
或甚至更好:向此控件添加一個屬性,可以枚舉其包含窗體上的所有標籤?那麼我們可以在設計時選擇其中的一個... – Bohn 2010-05-25 18:50:27
當然,我會用代碼示例更新我的答案。 – 2010-05-25 19:00:18