文字成是左右显示的
private void Form1_Load(object sender, System.EventArgs e)
{
this.tabControl1.Alignment = System.Windows.Forms.TabAlignment.Left;
}
文字成是上下显示的
private void Form1_Load(object sender, System.EventArgs e)
{
this.tabControl1.DrawMode = System.Windows.Forms.TabDrawMode.OwnerDrawFixed;
this.tabControl1.Alignment = System.Windows.Forms.TabAlignment.Left;
}
private void tabControl1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{
StringFormat sf = new StringFormat(); // set the Alignment to center
sf.LineAlignment = StringAlignment.Center;
sf.Alignment = StringAlignment.Center;
// Draw the text
e.Graphics.DrawString(((TabControl)sender).TabPages[e.Index].Text, 
System.Windows.Forms.SystemInformation.MenuFont, 
new SolidBrush(Color.Black), 
e.Bounds, 
sf);
}

解决方案 »

  1.   

    谢谢海宁,不过试过这个,没有效果。我把TabControl的Alignment属性设置为Left,结果标签上的文字也转了90度,我设置字体为@宋体,9pt,结果文字虽然方向又变了,底朝上,头朝下,请问这是怎么回事,应该不是个大问题,请朋友们给指点一下。谢谢了。
      

  2.   

    没效果?楼主到底要什么效果?
    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;namespace WindowsApplication3
    {
    /// <summary>
    /// Form1 的摘要说明。
    /// </summary>
    public class Form1 : System.Windows.Forms.Form
    {
    private System.Windows.Forms.TabControl tabControl1;
    private System.Windows.Forms.TabPage tabPage1;
    private System.Windows.Forms.TabPage tabPage2;
    /// <summary>
    /// 必需的设计器变量。
    /// </summary>
    private System.ComponentModel.Container components = null; public Form1()
    {
    //
    // Windows 窗体设计器支持所必需的
    //
    InitializeComponent(); //
    // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
    //
    } /// <summary>
    /// 清理所有正在使用的资源。
    /// </summary>
    protected override void Dispose( bool disposing )
    {
    if( disposing )
    {
    if (components != null) 
    {
    components.Dispose();
    }
    }
    base.Dispose( disposing );
    } #region Windows 窗体设计器生成的代码
    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {
    this.tabControl1 = new System.Windows.Forms.TabControl();
    this.tabPage1 = new System.Windows.Forms.TabPage();
    this.tabPage2 = new System.Windows.Forms.TabPage();
    this.tabControl1.SuspendLayout();
    this.SuspendLayout();
    // 
    // tabControl1
    // 
    this.tabControl1.Alignment = System.Windows.Forms.TabAlignment.Left;
    this.tabControl1.Controls.Add(this.tabPage1);
    this.tabControl1.Controls.Add(this.tabPage2);
    this.tabControl1.Location = new System.Drawing.Point(16, 16);
    this.tabControl1.Multiline = true;
    this.tabControl1.Name = "tabControl1";
    this.tabControl1.SelectedIndex = 0;
    this.tabControl1.TabIndex = 1;
    this.tabControl1.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.tabControl1_DrawItem);
    // 
    // tabPage1
    // 
    this.tabPage1.BackColor = System.Drawing.SystemColors.ActiveCaptionText;
    this.tabPage1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
    this.tabPage1.Location = new System.Drawing.Point(40, 4);
    this.tabPage1.Name = "tabPage1";
    this.tabPage1.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
    this.tabPage1.Size = new System.Drawing.Size(156, 92);
    this.tabPage1.TabIndex = 0;
    this.tabPage1.Text = "海宁1";
    // 
    // tabPage2
    // 
    this.tabPage2.Location = new System.Drawing.Point(40, 4);
    this.tabPage2.Name = "tabPage2";
    this.tabPage2.Size = new System.Drawing.Size(156, 92);
    this.tabPage2.TabIndex = 1;
    this.tabPage2.Text = "海宁2";
    this.tabPage2.Visible = false;
    // 
    // Form1
    // 
    this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
    this.ClientSize = new System.Drawing.Size(292, 273);
    this.Controls.Add(this.tabControl1);
    this.Name = "Form1";
    this.Text = "Form1";
    this.Load += new System.EventHandler(this.Form1_Load);
    this.tabControl1.ResumeLayout(false);
    this.ResumeLayout(false); }
    #endregion /// <summary>
    /// 应用程序的主入口点。
    /// </summary>
    [STAThread]
    static void Main() 
    {
    Application.Run(new Form1());
    } private void Form1_Load(object sender, System.EventArgs e)
    {
    this.tabControl1.DrawMode = System.Windows.Forms.TabDrawMode.OwnerDrawFixed;
    this.tabControl1.Alignment = System.Windows.Forms.TabAlignment.Left;
    } private void tabControl1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
    {
    StringFormat sf = new StringFormat(); // set the Alignment to center
    sf.LineAlignment = StringAlignment.Center;
    sf.Alignment = StringAlignment.Center;
    // Draw the text
    e.Graphics.DrawString(((TabControl)sender).TabPages[e.Index].Text, 
    System.Windows.Forms.SystemInformation.MenuFont, 
    new SolidBrush(Color.Black), 
    e.Bounds, 
    sf);
    }
    }
    }
      

  3.   

    没有试过,楼主如果有兴趣可以参考以下 r.a.d tab控件,非常好用
    http://www.evget.com/view/viewProductInfo.asp?productId=290
      

  4.   

    谢谢omg,这个好像是基于Web的,唉。
      

  5.   

    ^_^,海宁,谢谢你,第一次使用你的代码时忘了设置tabControl1的DrawMode 属性了,将其设为System.Windows.Forms.TabDrawMode.OwnerDrawFixed就成功了,非常感谢你。