none
ToolTip[] 可以宣告成陣列嗎? RRS feed

  • 問題

  • 請問,如果要四個不同 ToolTipIcon.xxx ,一定要拉四個 ToolTip1~4嗎?
    我嘗試這樣...可是不行...如下code
    是否能給範例?
    謝謝
     ToolTip[] TT = new ToolTip[] { toolTip1}; 
    or
    ToolTip[] TT = new ToolTip[4] ;
                        
               TT[0].ToolTipIcon = ToolTipIcon.Warning;
               TT[1].ToolTipIcon = ToolTipIcon.None;
               TT[2].ToolTipIcon = ToolTipIcon.Info;
               TT[3].ToolTipIcon = ToolTipIcon.Error;
               
                TT[0].SetToolTip(this.button1, "Warning!!");
                TT[1].SetToolTip(this.button2, "None!!");
                TT[2].SetToolTip(this.button3, "Info!!");
                TT[3].SetToolTip(this.button4, "Error!!");

    2011年8月21日 下午 04:30

解答

  • (1) 能否不要老是改不掉只講 "不行" 這種壞習慣 ? 怎麼個不行法, 難道不能說清楚嗎 ? 執行沒有錯誤訊息嗎 ?

    (2) 你的問題在於對陣列初始化的不正確, 你沒有為每個元素初始化

    ToolTip[] TT = new ToolTip[4];
           for (int i = 0; i < 4; i++)
           {
               TT[i]=new ToolTip();
           }

     


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    • 已標示為解答 weipxf 2011年8月21日 下午 05:18
    2011年8月21日 下午 04:47
    版主
  • 補充一下

    其實也可以不用new ToolTip陣列,畫面上只要拉一個ToolTip

    然後在每個控制項的MouseHover事件

    例如:

        private void button1_MouseHover(object sender, EventArgs e)
        {
          this.toolTip1.ToolTipIcon = ToolTipIcon.Warning;
          this.toolTip1.SetToolTip(this.button1, "Hello World!!");
        }
    
        private void checkBox1_MouseHover(object sender, EventArgs e)
        {
    
          this.toolTip1.ToolTipIcon = ToolTipIcon.Info;
          this.toolTip1.SetToolTip(this.checkBox1, "checkBox Info");
        }
    




    Shadowと愉快なコード達
    • 已標示為解答 weipxf 2011年8月22日 上午 03:45
    2011年8月22日 上午 02:17

所有回覆

  • (1) 能否不要老是改不掉只講 "不行" 這種壞習慣 ? 怎麼個不行法, 難道不能說清楚嗎 ? 執行沒有錯誤訊息嗎 ?

    (2) 你的問題在於對陣列初始化的不正確, 你沒有為每個元素初始化

    ToolTip[] TT = new ToolTip[4];
           for (int i = 0; i < 4; i++)
           {
               TT[i]=new ToolTip();
           }

     


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    • 已標示為解答 weipxf 2011年8月21日 下午 05:18
    2011年8月21日 下午 04:47
    版主
  • 謝謝 Bill Chung ,之後發問,會詳細說明遇到問題。

    2011年8月21日 下午 05:18
  • 補充一下

    其實也可以不用new ToolTip陣列,畫面上只要拉一個ToolTip

    然後在每個控制項的MouseHover事件

    例如:

     private void checkBox1_MouseHover(object sender, EventArgs e) 
     { 
      toolTip1.Show("您的文字", checkBox1);  
     } 
    
    

     


    Shadowと愉快なコード達

    2011年8月22日 上午 02:06
  • 補充一下

    其實也可以不用new ToolTip陣列,畫面上只要拉一個ToolTip

    然後在每個控制項的MouseHover事件

    例如:

        private void button1_MouseHover(object sender, EventArgs e)
        {
          this.toolTip1.ToolTipIcon = ToolTipIcon.Warning;
          this.toolTip1.SetToolTip(this.button1, "Hello World!!");
        }
    
        private void checkBox1_MouseHover(object sender, EventArgs e)
        {
    
          this.toolTip1.ToolTipIcon = ToolTipIcon.Info;
          this.toolTip1.SetToolTip(this.checkBox1, "checkBox Info");
        }
    




    Shadowと愉快なコード達
    • 已標示為解答 weipxf 2011年8月22日 上午 03:45
    2011年8月22日 上午 02:17
  • 有一個想法,但不知是否能這樣...我想把以下 粗體底線的部分,改用
    for or foreach...之類來存在 TT[i],想這樣做的原因是,不想看見那麼多行同樣程式碼,還有如果有很多的控制項要做 ToolTipIcon...可以省略很多行 ,前輩是否有其他可參考的 Code 與建議
    感恩~!
    TT[i].ToolTipIcon=ToolTipIcon.XXX
    TT[i].SetToolTip(this.button1, "this is Button's Warning!!")
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                this.button1.Text = "Warning";
                this.button2.Text = "Info";
                this.button3.Text = "Error";
                this.button4.Text = "None";
                ToolTip[] TT = new ToolTip[4];
                for (int i = 0; i < TT.Length; i++)
                {
                   
                    TT[i] = new ToolTip();
                }
                
                TT[0].ToolTipIcon = ToolTipIcon.Warning;
                TT[1].ToolTipIcon = ToolTipIcon.None;
                TT[2].ToolTipIcon = ToolTipIcon.Info;
                TT[3].ToolTipIcon = ToolTipIcon.Error;
             
                TT[0].SetToolTip(this.button1, "Warning!!");
                TT[1].SetToolTip(this.button2, "None!!");
                TT[2].SetToolTip(this.button3, "Info!!");
                TT[3].SetToolTip(this.button4, "Error!!");
            }
        }
    }


    2011年8月22日 上午 03:58
  • 小弟看那四個button

    要顯示的註記都不一樣

    應該沒辦法寫在for迴圈裡

    就算可以,也變成要在for迴圈裡去if 做四個判斷然後再一一設定對應的Tooltip訊息(這樣就跟原本的沒什麼兩樣了)


    Shadowと愉快なコード達
    2011年8月22日 上午 04:03
  • 有機會少一點, 但要少很多是不可能

     


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2011年8月22日 上午 04:06
    版主
  • 要少很多不可能...瞭解了...感謝兩位前輩,給的經驗。
    2011年8月22日 上午 04:13
  • 如果你是有多個控制項要同時顯示 tooltip,才會需要這樣做,不然通常只要一個就夠了。

    你也可以進一步使用 singleton 模式將它包起來。


    小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
    雲端學堂Facebook: http://www.facebook.com/studyazure
    2011年8月22日 上午 04:31
    版主
  • 謝謝 小朱提供的方式。
    2011年8月22日 上午 05:44