乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 176|回复: 11

[编程交流] VB。将子公司净投入形式ev

[复制链接]

48

主题

1073

帖子

1043

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
238
发表于 2022-7-6 22:22:28 | 显示全部楼层 |阅读模式
标题太长了。我希望这是一个简单的问题,我只是忽略了显而易见的。然而,继续我的其他帖子,你知道我在VB中艰难前行。Net的帮助下,杰瑞温特斯的书。就目前而言,一切都很好。。。。
 
我正试图重写我们的VBA例程,但虽然我已经准备好了大部分组件,但我不知道如何将它们粘在一起。
 
常规。。。。
我有一个带有组合框、列表、标签和命令按钮的表单。
组合框显示图层列表。
该列表列出了选定图层上的所有文字图元。
标签显示选定图层上的文字图元数。
该按钮将列表导出到文本文件。
(文本文件提供给我们的面板生成器,用于创建热缩导线末端标记。)
 
组合框填充很容易。
我没有对列表总体进行排序,但使用当前用于标签计数的选择集应该不会有问题(昨天的问题-现在已排序)。
 
我想要的是,当组合框更改时,我的列表和标签会更新。然而,选择集在我的类定义中,组合框更改在form类中。我看不到从组合框更改的事件传递到类中的子事件的方法。如果我将选择集子对象放入form类中,它不喜欢调用编辑器。
 
我错过了什么?
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 22:31:45 | 显示全部楼层
 
我相信这就是你想要的,戴夫:
 
  1. Class Form1
  2.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  3.        ComboBox1.SelectedIndex = 0
  4.    End Sub
  5.    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
  6.        Dim comboBox As ComboBox = CType(sender, ComboBox)
  7.        Label1.Text = CType(comboBox.SelectedItem, String)
  8.    End Sub
  9. End Class
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 22:37:01 | 显示全部楼层
 
很难说,尤其是没有代码。。。你能发一个片段吗?听起来您好像遇到了权限问题,但同样,不确定您在非表单类中尝试做什么。需要更多信息。
回复

使用道具 举报

48

主题

1073

帖子

1043

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
238
发表于 2022-7-6 22:39:22 | 显示全部楼层
谢谢BB。再一次,我将不得不离开这一段时间,因为真正的工作和半天的休息将阻止我看它。我会尝试和张贴代码后,它已经整理好。今天需要进行一些剪切和粘贴,需要恢复。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 22:49:07 | 显示全部楼层
 
一如既往,欢迎你;我很乐意帮助。。。至于切割+粘贴,“手术”总是很痛苦,现在比以后好。
 
享受你的半天。
回复

使用道具 举报

48

主题

1073

帖子

1043

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
238
发表于 2022-7-6 22:50:09 | 显示全部楼层
这并没有像预期的那么长时间。(仍然没有看你的thoguh)。
 
我的代码。。。
该位加载带有层名称的组合框,并显示Form1
  1. [size=2][color=#0000ff][size=2][color=#0000ff]Public[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]Sub[/color][/size][/color][/size][size=2] ExportFerrules()[/size]
  2. [size=2][color=#0000ff][size=2][color=#0000ff]Dim[/color][/size][/color][/size][size=2] i [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]Integer[/color][/size][/color][/size][size=2] = 1[/size]
  3. [size=2][color=#0000ff][size=2][color=#0000ff]Dim[/color][/size][/color][/size][size=2] myForm [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]New[/color][/size][/color][/size][size=2] Form1[/size]
  4. [size=2][color=#0000ff][size=2][color=#0000ff]Dim[/color][/size][/color][/size][size=2] myDB [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2] Database = HostApplicationServices.WorkingDatabase[/size]
  5. [size=2][color=#0000ff][size=2][color=#0000ff]Using[/color][/size][/color][/size][size=2] myTrans [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2] Transaction = myDB.TransactionManager.StartTransaction[/size]
  6. [size=2][color=#0000ff][size=2][color=#0000ff]Dim[/color][/size][/color][/size][size=2] myLT [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2] LayerTable = myDB.LayerTableId.GetObject(OpenMode.ForRead)[/size]
  7. [size=2][color=#0000ff][size=2][color=#0000ff]For[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]Each[/color][/size][/color][/size][size=2] myOID [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2] ObjectId [/size][size=2][color=#0000ff][size=2][color=#0000ff]In[/color][/size][/color][/size][size=2] myLT[/size]
  8. [size=2][color=#0000ff][size=2][color=#0000ff]Dim[/color][/size][/color][/size][size=2] myLTR [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2] LayerTableRecord = myOID.GetObject(OpenMode.ForRead)[/size]
  9. [size=2]myForm.ComboBox1.Items.Add(myLTR.Name)[/size]
  10. [size=2][color=#0000ff][size=2][color=#0000ff]If[/color][/size][/color][/size][size=2] UCase(myLTR.Name) = [/size][size=2][color=#a31515][size=2][color=#a31515]"FERRULES"[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]Then[/color][/size][/color][/size][size=2] i = myForm.ComboBox1.Items.Count[/size]
  11. [size=2][color=#0000ff][size=2][color=#0000ff]Next[/color][/size]
  12. [/color][/size][size=2]myForm.ComboBox1.SelectedIndex = i - 1[/size]
  13. [size=2][color=#0000ff][size=2][color=#0000ff]End[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]Using[/color][/size]
  14. [/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]Dim[/color][/size][/color][/size][size=2] j [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]Integer[/color][/size][/color][/size][size=2] = 0[/size]
  15. [size=2][color=#0000ff][size=2][color=#0000ff]Dim[/color][/size][/color][/size][size=2] LayNm [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]String[/color][/size][/color][/size][size=2] = myForm.ComboBox1.Items(i - 1)[/size]
  16. [size=2][color=#008000][size=2][color=#008000]Call TextOnLayer(j, LayNm)[/color][/size]
  17. [/color][/size][size=2]myForm.Label2.Text = j[/size]
  18. [size=2][color=#0000ff][size=2][color=#0000ff]Select[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]Case[/color][/size][/color][/size][size=2] Application.ShowModalDialog(myForm)[/size]
  19. [size=2][color=#0000ff][size=2][color=#0000ff]Case[/color][/size][/color][/size][size=2] System.Windows.Forms.DialogResult.OK[/size]
  20. [size=2]MsgBox([/size][size=2][color=#a31515][size=2][color=#a31515]"Hello"[/color][/size][/color][/size][size=2])[/size]
  21. [size=2][color=#0000ff][size=2][color=#0000ff]Case[/color][/size][/color][/size][size=2] System.Windows.Forms.DialogResult.Cancel[/size]
  22. [size=2]MsgBox([/size][size=2][color=#a31515][size=2][color=#a31515]"Do Nothing."[/color][/size][/color][/size][size=2])[/size]
  23. [size=2][color=#0000ff][size=2][color=#0000ff]End[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]Select[/color][/size]
  24. [/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]End[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]Sub[/color][/size]
  25. [/color][/size]

 
该位统计由组合框指定的层上的文本对象数。
  1. [size=2][color=#0000ff][size=2][color=#0000ff]Public[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]Sub[/color][/size][/color][/size][size=2] TextOnLayer([/size][size=2][color=#0000ff][size=2][color=#0000ff]ByRef[/color][/size][/color][/size][size=2] j, [/size][size=2][color=#0000ff][size=2][color=#0000ff]ByRef[/color][/size][/color][/size][size=2] LayNm)[/size]
  2. [size=2][color=#008000][size=2][color=#008000]'Add bit about counting text on layer[/color][/size]
  3. [/color][/size][size=2][color=#008000][size=2][color=#008000]'This has gone back in to the load stage for now.[/color][/size]
  4. [/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]Dim[/color][/size][/color][/size][size=2] myEd [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2] Editor = DocumentManager.MdiActiveDocument.Editor[/size]
  5. [size=2][color=#0000ff][size=2][color=#0000ff]Dim[/color][/size][/color][/size][size=2] myTVs(3) [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2] TypedValue[/size]
  6. [size=2]myTVs.SetValue([/size][size=2][color=#0000ff][size=2][color=#0000ff]New[/color][/size][/color][/size][size=2] TypedValue(DxfCode.Operator, [/size][size=2][color=#a31515][size=2][color=#a31515]"<AND"[/color][/size][/color][/size][size=2]), 0)[/size]
  7. [size=2]myTVs.SetValue([/size][size=2][color=#0000ff][size=2][color=#0000ff]New[/color][/size][/color][/size][size=2] TypedValue(DxfCode.Start, [/size][size=2][color=#a31515][size=2][color=#a31515]"TEXT"[/color][/size][/color][/size][size=2]), 1)[/size]
  8. [size=2]myTVs.SetValue([/size][size=2][color=#0000ff][size=2][color=#0000ff]New[/color][/size][/color][/size][size=2] TypedValue(DxfCode.LayerName, LayNm), 2)[/size]
  9. [size=2]myTVs.SetValue([/size][size=2][color=#0000ff][size=2][color=#0000ff]New[/color][/size][/color][/size][size=2] TypedValue(DxfCode.Operator, [/size][size=2][color=#a31515][size=2][color=#a31515]"AND>"[/color][/size][/color][/size][size=2]), 3)[/size]
  10. [size=2][color=#0000ff][size=2][color=#0000ff]Dim[/color][/size][/color][/size][size=2] myFilter [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]New[/color][/size][/color][/size][size=2] SelectionFilter(myTVs)[/size]
  11. [size=2][color=#0000ff][size=2][color=#0000ff]Dim[/color][/size][/color][/size][size=2] myPSR [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2] PromptSelectionResult = myEd.SelectAll(myFilter)[/size]
  12. [size=2][color=#0000ff][size=2][color=#0000ff]If[/color][/size][/color][/size][size=2] myPSR.Status = PromptStatus.OK [/size][size=2][color=#0000ff][size=2][color=#0000ff]Then[/color][/size]
  13. [/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]Dim[/color][/size][/color][/size][size=2] mySS [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2] SelectionSet = myPSR.Value[/size]
  14. [size=2]j = mySS.Count[/size]
  15. [size=2][color=#0000ff][size=2][color=#0000ff]End[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]If[/color][/size]
  16. [/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]End[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]Sub[/color][/size]
  17. [size=2][color=#0000ff]End[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]Class[/color][/size]
  18. [/color][/size]

 
这个位告诉你组合框有一个新的选定层
 
  1. [size=2]
  2. [/size][size=2][color=#0000ff][size=2][color=#0000ff]Private[/color][/size][/color][/size][size=2] [/size][size=2][color=#0000ff][size=2][color=#0000ff]Sub[/color][/size][/color][/size][size=2] ComboBox1_SelectedIndexChanged([/size][size=2][color=#0000ff][size=2][color=#0000ff]ByVal[/color][/size][/color][/size][size=2] sender [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2] System.Object, [/size][size=2][color=#0000ff][size=2][color=#0000ff]ByVal[/color][/size][/color][/size][size=2] e [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2] System.EventArgs) [/size][size=2][color=#0000ff][size=2][color=#0000ff]Handles[/color][/size][/color][/size][size=2] ComboBox1.SelectedIndexChanged
  3. MsgBox(ComboBox1.SelectedItem)
  4. [/size][size=2][color=#0000ff][size=2][color=#0000ff]End[/color][/size][/color][/size][size=2] [/size][size=2][color=#0000ff][size=2][color=#0000ff]Sub
  5. [/color][/size][/color][/size]

 
我希望能够从组合框“IndexChanged”代码中调用“TextOnLayer”sub,但它们似乎是互斥的。
回复

使用道具 举报

48

主题

1073

帖子

1043

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
238
发表于 2022-7-6 22:59:10 | 显示全部楼层
我可以让它做我想做的事
 
但只需要从类中复制所有导入。vb模块转换为Form1。vb模块。这肯定不是正确的方式吗?
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 23:03:35 | 显示全部楼层
据我所知,项目/解决方案中的每个类文件(即vb、cs等)都需要依赖导入(在C#中使用)语句,以便在不限定命名空间的情况下引用类型名。
回复

使用道具 举报

48

主题

1073

帖子

1043

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
238
发表于 2022-7-6 23:08:47 | 显示全部楼层
谢谢,我觉得可能很简单。只是看起来不对。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 23:15:26 | 显示全部楼层
 
可能但是,当你编写的代码比“hello world”多时,它(使用Imports语句)确实节省了大量的输入。
 
将其与进行比较:
 
[code]。AutoCAD。伪代码。SampleWithImports公共类命令_PublicSub SampleWithImports()Dim doc As[color=“blue”]Document=[color=“blue”]应用程序。DocumentManager。MdiActiveDocument变暗为[color=“blue”]编辑器=文档。编辑ed.WriteMessage(vbLf和“**领结很酷**”和vbLf)结束子[颜色=“绿色”]“”
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-4 11:36 , Processed in 0.953200 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表