C# tabpage控件上添加东西

C# tabpage控件上添加东西,第1张

1.继承TABPAGE,并把该添加控件添加上,然后点击按钮添加继承的那个子控件,

2.往容器里添加控件代码:

Burron

b

=

new

Burron()

b.Location

=

new

Point(10,10)

b.Size

=

new

Size(100,100)

TABPAGE1.Controls.Add(b)

你得指定CheckBox的初始位置,向下面一样

private void button1_Click(object sender, EventArgs e)

{

CheckBox checkBox1 = new CheckBox()

CheckBox checkBox2 = new CheckBox()

CheckBox checkBox3 = new CheckBox()

checkBox1.Text = "AA"

checkBox2.Text = "BB"

checkBox3.Text = "CC"

tabControl1.TabPages[0].Controls.Add(checkBox1)

tabControl1.TabPages[0].Controls.Add(checkBox2)

tabControl1.TabPages[0].Controls.Add(checkBox3)

checkBox1.Location = new Point(50, 20)

checkBox2.Location = new Point(50, 50)

checkBox3.Location = new Point(50, 80)

}

C#重绘TabControl的Tabpage标签,添加图片及关闭按钮

以下就是C#重绘TabControl控件的源码:

1 using System

2 using System.Collections.Generic

3 using System.ComponentModel

4 using System.Data

5 using System.Drawing

6 using System.Linq

7 using System.Text

8 using System.Windows.Forms

9

10

11 namespace TabControlTest

12 {

13 public partial class Form1 : Form

14 {

15 public Form1()

16 {

17 InitializeComponent()

18 }

19

20 const int CLOSE_SIZE = 15

21 //tabPage标签图片

22 Bitmap image = new Bitmap("E:\\1\\2.jpg")

23 //绘制“X”号即关闭按钮

24 private void MainTabControl_DrawItem(object sender, DrawItemEventArgs e)

25 {

26

27 try

28 {

29 Rectangle myTabRect = this.MainTabControl.GetTabRect(e.Index)

30

31 //先添加TabPage属性

32 e.Graphics.DrawString(this.MainTabControl.TabPages[e.Index].Text

33 , this.Font, SystemBrushes.ControlText, myTabRect.X + 2, myTabRect.Y + 2)

34

35 //再画一个矩形框

36 using (Pen p = new Pen(Color.White))

37 {

38 myTabRect.Offset(myTabRect.Width - (CLOSE_SIZE + 3), 2)

39 myTabRect.Width = CLOSE_SIZE

40 myTabRect.Height = CLOSE_SIZE

41 e.Graphics.DrawRectangle(p, myTabRect)

42

43 }

44

45 //填充矩形框

46 Color recColor = e.State == DrawItemState.Selected ? Color.White : Color.White

47 using (Brush b = new SolidBrush(recColor))

48 {

49 e.Graphics.FillRectangle(b, myTabRect)

50 }

51

52 //画关闭符号

53 using (Pen objpen = new Pen(Color.Black))

54 {

55 //"\"线

56 Point p1 = new Point(myTabRect.X + 3, myTabRect.Y + 3)

57 Point p2 = new Point(myTabRect.X + myTabRect.Width - 3, myTabRect.Y + myTabRect.Height - 3)

58 e.Graphics.DrawLine(objpen, p1, p2)

59

60 //"/"线

61 Point p3 = new Point(myTabRect.X + 3, myTabRect.Y + myTabRect.Height - 3)

62 Point p4 = new Point(myTabRect.X + myTabRect.Width - 3, myTabRect.Y + 3)

63 e.Graphics.DrawLine(objpen, p3, p4)

64 ////=============================================

65 Bitmap bt = new Bitmap(image)

66 Point p5 = new Point(myTabRect.X-50, 4)

67 e.Graphics.DrawImage(bt, p5)

68 //e.Graphics.DrawString(this.MainTabControl.TabPages[e.Index].Text, this.Font, objpen.Brush, p5)

69 }

70

71

72 //绘制小图标

73 //==============================================================================

74 //Bitmap bt = new Bitmap("E:\\1\\2.jpg")

75 //Point p5 = new Point(4, 4)

76 ////e.Graphics.DrawImage(bt, e.Bounds)

77 //e.Graphics.DrawImage(bt, p5)

78 //Pen pt = new Pen(Color.Red)

79 ////e.Graphics.DrawString(this.MainTabControl.TabPages[e.Index].Text, this.Font, pt.Brush, e.Bounds)

80 //e.Graphics.DrawString(this.MainTabControl.TabPages[e.Index].Text, this.Font, pt.Brush, p5)

81

82 e.Graphics.Dispose()

83 }

84 catch (Exception)

85 {

86

87 }

88

89

90 }

91 //=======================================================================

92

93 //关闭按钮功能

94 private void MainTabControl_MouseDown(object sender, MouseEventArgs e)

95 {

96 if (e.Button == MouseButtons.Left)

97 {

98 int x = e.X, y = e.Y

99

100 //计算关闭区域

101 Rectangle myTabRect = this.MainTabControl.GetTabRect(this.MainTabControl.SelectedIndex)

102

103 myTabRect.Offset(myTabRect.Width - (CLOSE_SIZE + 3), 2)

104 myTabRect.Width = CLOSE_SIZE

105 myTabRect.Height = CLOSE_SIZE

106

107 //如果鼠标在区域内就关闭选项卡

108 bool isClose = x >myTabRect.X &&x <myTabRect.Right

109 &&y >myTabRect.Y &&y <myTabRect.Bottom

110

111 if (isClose == true)

112 {

113 this.MainTabControl.TabPages.Remove(this.MainTabControl.SelectedTab)

114 }

115 }

116

117

118 }

119 //初始化页面

120 private void Form1_Load(object sender, EventArgs e)

121 {

122 //清空控件

123 //this.MainTabControl.TabPages.Clear()

124 //绘制的方式OwnerDrawFixed表示由窗体绘制大小也一样

125 this.MainTabControl.DrawMode = TabDrawMode.OwnerDrawFixed

126 this.MainTabControl.Padding = new System.Drawing.Point(CLOSE_SIZE, CLOSE_SIZE)

127 this.MainTabControl.DrawItem += new DrawItemEventHandler(this.MainTabControl_DrawItem)

128 this.MainTabControl.MouseDown += new System.Windows.Forms.MouseEventHandler(this.MainTabControl_MouseDown)

129 }

130

131 //添加新的tabPage并修改所有tabPage标签上面的图片

132 private void button1_Click(object sender, EventArgs e)

133 {

134 TabPage tabtage=new TabPage ()

135 MainTabControl.TabPages.Add(tabtage)

136 MainTabControl.SelectedTab = tabtage

137 image = new Bitmap("E:\\1\\3.jpg")

138

139

140 }

141 //关闭选中的tabPage

142 private void button2_Click(object sender, EventArgs e)

143 {

144 MainTabControl.TabPages.Remove(MainTabControl.SelectedTab)

145 }

146

147

148

149 }

150 }

C#重绘TabControl的Tabpage标签,添加图片及关闭按钮就像你介绍到这里了,希望对你有所帮助。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11579102.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存