C#Listview(viewmode=Details)没有水平滚动条
如标题所示,我的C#Listview(viewmode=Details)没有水平滚动条,c#,winforms,C#,Winforms,如标题所示,我的ListView和View=Details有很多列,因此我希望用户能够在这些列上滚动。但是,尽管我将Scrollable属性设置为true,但没有显示水平滚动条。我该怎么办 我找了这么多,但以前没有人经历过 更新:我刚刚刷新了设计器,并且在设计器中出现了滚动条,但是当我执行/调试时,没有滚动条出现。我有另一种方法来解决这个问题,下面是我的解决方案: 步骤1.创建派生类型: public class ListViewEx : ListView { [System.Runti
ListView
和View=Details
有很多列,因此我希望用户能够在这些列上滚动。但是,尽管我将Scrollable
属性设置为true
,但没有显示水平滚动条。我该怎么办
我找了这么多,但以前没有人经历过
更新:我刚刚刷新了设计器,并且在设计器中出现了滚动条,但是当我执行/调试时,没有滚动条出现。我有另一种方法来解决这个问题,下面是我的解决方案: 步骤1.创建派生类型:
public class ListViewEx : ListView
{
[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern int ShowScrollBar(IntPtr hWnd, int iBar, int bShow);
const int SB_HORZ = 0;
const int SB_VERT = 1;
protected override void WndProc(ref Message m)
{
if (this.View == View.List)
{
ShowScrollBar(this.Handle, SB_VERT, 1);
ShowScrollBar(this.Handle, SB_HORZ, 0);
}
base.WndProc(ref m);
}
}
步骤2.使用listview的派生类型:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
ListViewItem lvi1 = new ListViewItem("1");
lvi1.SubItems.Add(Guid.NewGuid().ToString());
ListViewItem lvi2 = new ListViewItem("2");
lvi2.SubItems.Add(Guid.NewGuid().ToString());
ListViewEx lve = new ListViewEx();
ColumnHeader headerID = lve.Columns.Add("ID");
ColumnHeader headerGUID = lve.Columns.Add("GUID");
lve.View = View.Details;
Controls.Add(lve);
lve.Size = new Size(100, 100);
lve.Items.AddRange(new ListViewItem[] { lvi1, lvi2 });
}
}
步骤3.结果是:
希望这有帮助 你查过了吗?@RahulAgarwal在那个问题中问的视图模式是
LargeIcon
,我认为这是完全不同的。