2009-12-07 90 views
0

我試圖做一個TextBox控件以及右側的按鈕。 我的代碼:如何將按鈕添加到文本框?

public partial class TextBoxButton : TextBox 
{ 
    [Category("Button")] 
    [Description("Button in textbox")] 
    public Button Button 
    { 
     get 
     { 
      return this.btn; 
     } 
     set 
     { 
      this.btn = value; 
     } 
    } 

    protected override void OnCreateControl() 
    { 
     if (!this.Controls.Contains(this.btn)) 
     { 
      this.Controls.Add(this.btn); 
      this.btn.Dock = DockStyle.Right; 
     } 

     base.OnCreateControl(); 
    } 
} 

每次當我開始我APPI並設置它是空的按鈕一些文字或圖像。一些想法?

此致敬禮。

回答

2

你要告訴設計師,它也應該序列化按鈕的屬性:

[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] 
public Button Button { 
    //... 
} 

默認爲隱藏因此所有按鈕的屬性將被寫入到Designer.cs文件。設置,比如說,Text屬性在設計器中工作,但是在啓動應用程序或重新加載表單後,屬性值會丟失。

+0

nobugz你知道如何設置文本框中的填充?當我寫東西的時候,文本會放在按鈕的後面... – Jooj 2009-12-07 19:40:46

+0

你可以通過設置右邊距來做到這一點P /調用SendMessage來發送EM_SETMARGINS – 2009-12-07 20:35:21

+0

你能解釋一下如何做到這一點嗎 – Jooj 2009-12-07 20:57:03

6

而不是添加按鈕到文本框的,使用一些容器(控制或用戶控件並添加文本框按鈕和在)。

+0

是不是用戶控件的確切定義? – 2009-12-07 18:45:23

+0

不,usercontrol是類(或派生類從「System.Windows.Forms.UserControl」。該類有一些能力,主要用於在圖形設計器中創建複雜的控件。 – TcKs 2009-12-08 07:44:03

0

不知道你的「在文本框中輸入」的意思。你的意思是你想擁有覆蓋文本框右側的按鈕,或位於文本框的權利(但不重疊)?

我不知道你的要求是什麼,但我可能會做這樣的可視化設計,而不是試圖做代碼:

  1. 創建一個新的控制
  2. 創建一個表容器有兩列和 1行。
  3. 放入 左邊的單元格中的文本框,並在 右單元中的按鈕。
0

如果你真的想將按鈕添加到文本框,然後按照下列步驟操作:

  • 創建一個新的C#的WinForms項目
  • 將新多形式的文本框
  • 將下面的代碼粘貼到Load事件中:

    Button btn = new Button(); 
    btn.Parent = textBox1; 
    btn.BringToFront();    
    textBox1.Controls.Add(btn); 
    
    btn.BackColor = Color.Gray; 
    btn.Text = "Help!"; 
    

正如你所看到的按鈕隱藏了高級的文本,但它確實看起來完全正常。

我相信,你真的是做的是放置該按鈕沿側文本框。也許使用一個面板控件來包含這兩個控件。

此外,無論何時將控件添加到其他控件 - 控件集合,都必須將父控件設置爲已添加到的控件。 Capiche? (對不起,字面意思;)

換句話說,你沒有設置文本框作爲按鈕的父控件。另外,WPF可能有能力做到這一點流動的按鈕周圍的文字!

1

第一個問題: 你需要一個或多個Button在TextBox的旁邊嗎? 所以你需要一個屬性或多個按鈕一個按鈕或Collection

如果按鈕是沒有這麼複雜,你必須做出很多特定功能, 您使用的用戶控件。這是正確的方法。否則你不得不採取一個CustomControl,更多的工作。

邏輯步驟:

  • 從上面
  • 使屬性或多個按鈕創建一個給定的控件之一
  • 使用對接的佈局,更容易
相關問題