熟悉DevComponents.AdvTree.Cell的请进。

sunally 2010-09-16 04:23:41
DevComponents.AdvTree.Cell单元格设置为可编辑状态,并且编辑框属性为数字类型DevComponents.AdvTree.eCellEditorType.NumericInteger,
我的问题是当双击时这个数字类型控件进行输入时,这个控件长度显示太小,只可以显示1位数。请问大侠怎么将输入框变长?
...全文
684 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
do_do_tony 2010-11-13
  • 打赏
  • 举报
回复
还是没有看懂
xzjxylophone 2010-09-19
  • 打赏
  • 举报
回复
恭喜 楼主 解决了问题
sunally 2010-09-17
  • 打赏
  • 举报
回复
谢谢bloodish,用HostControl方法简单有效。
bloodish 2010-09-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sunally 的回复:]
bloodish你好,
你那个响应函数在EditorType为eCellEditorType.Custom才能进入,如果eCellEditorType.NumericInteger不会进入。
谢谢你的关注。
[/Quote]

你的判断是不对的,任何情况都能触发这个事件.

另外如果实在无法满足你的要求,设置Cell的HostControl为一个IntegerInput
步骤为先在UI上添加一个IntegerInput,设置其相关属性,再在Cell Collection Editor中
选择Cell的HostControl为你刚添加的IntegerInput.

实际项目中对DotNetBar还是比较熟悉的,用的也比较多,希望能给你一点帮助.
sunally 2010-09-16
  • 打赏
  • 举报
回复
bloodish你好,
你那个响应函数在EditorType为eCellEditorType.Custom才能进入,如果eCellEditorType.NumericInteger不会进入。
谢谢你的关注。
bloodish 2010-09-16
  • 打赏
  • 举报
回复
处理一下PrepareCellEditorControl事件


private void advTree1_PrepareCellEditorControl(object sender, PrepareCellEditorEventArgs e)
{
IntegerInput ii = e.Editor as IntegerInput;
if(ii != null)
{
ii.DisplayFormat = "d5";
ii.FreeTextEntryMode = true;
}
}
sunally 2010-09-16
  • 打赏
  • 举报
回复
我Cell节点代码如下,外面的绿色边框很长,但是点击输入时里面的数字控件就一位大小,列宽再大也不行,不知为何?
DevComponents.AdvTree.Cell UserNameLabel = new DevComponents.AdvTree.Cell();
UserNameLabel.Text = "预置点";
UserNameLabel.StyleNormal = new DevComponents.DotNetBar.ElementStyle();
UserNameLabel.StyleNormal.Border = DevComponents.DotNetBar.eStyleBorderType.Solid;
UserNameLabel.Editable = false;
DvsCameraNode.Cells.Add(UserNameLabel);
DevComponents.AdvTree.Cell Preset = new DevComponents.AdvTree.Cell();
Preset.StyleNormal = new DevComponents.DotNetBar.ElementStyle();
Preset.StyleNormal.Border = DevComponents.DotNetBar.eStyleBorderType.Solid;
Preset.StyleNormal.BorderWidth = 2;
Preset.StyleNormal.BorderColor = Color.Green;
Preset.StyleNormal.MaximumWidth = 200;

Preset.StyleNormal.PaddingLeft = 0;
Preset.StyleNormal.PaddingRight = 100;
Preset.StyleNormal.PaddingBottom = 5;
Preset.StyleNormal.PaddingTop = 0;
Preset.Editable = true;
Preset.EditorType = DevComponents.AdvTree.eCellEditorType.NumericInteger;
Preset.StyleNormal.WordWrap = false;
Preset.Text = "1";
DvNode.Cells.Add(Preset);
porschev 2010-09-16
  • 打赏
  • 举报
回复
帮顶。。没用过。。
bloodish 2010-09-16
  • 打赏
  • 举报
回复
EditType设置成:eCellEditorType.NumericInteger之后,当编辑Cell时自动会出现一个IntegerInput Control,这个Control的Dock属性是Fill,你只要把列宽拉的大一点,IntegerInput自动会按列宽充满,就不存在长度小的问题.
龍月 2010-09-16
  • 打赏
  • 举报
回复
关注 帮顶
xzjxylophone 2010-09-16
  • 打赏
  • 举报
回复
没有用过, 帮顶

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧