因为公司业务原因,不能上传原始项目,这是简化版本。
临时设计的窗体和气泡样式,有需要可以重新设计。效果如下:
主要原理:一个TextBlock + 一个三角形
项目结构:
-- Form1 窗体类
-- Item 控件类(气泡)
Form1前端代码:
#region Windows 窗体设计器生成的代码 /// <summary> /// 设计器支持所需的方法 - 不要 /// 使用代码编辑器修改此方法的内容。 /// </summary> private void InitializeComponent() { this.panel1 = new System.Windows.Forms.Panel(); this.textBox1 = new System.Windows.Forms.TextBox(); this.button1 = new System.Windows.Forms.Button(); this.SuspendLayout(); // // panel1 // this.panel1.AutoScroll = true; this.panel1.Location = new System.Drawing.Point(0, 0); this.panel1.Name = "panel1"; this.panel1.Size = new System.Drawing.Size(377, 404); this.panel1.TabIndex = 0; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(0, 406); this.textBox1.Multiline = true; this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(377, 65); this.textBox1.TabIndex = 1; // // button1 // this.button1.Location = new System.Drawing.Point(302, 477); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(75, 23); this.button1.TabIndex = 2; this.button1.Text = "Send"; this.button1.UseVisualStyleBackColor = true; this.button1.Click += new System.EventHandler(this.button1_Click); // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(380, 504); this.Controls.Add(this.button1); this.Controls.Add(this.textBox1); this.Controls.Add(this.panel1); this.Name = "Form1"; this.Text = "Form1"; this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.Panel panel1; private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.Button button1;