首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python.NET WinForms -遍历每个组合框

Python.NET WinForms -遍历每个组合框
EN

Stack Overflow用户
提问于 2021-03-30 20:37:29
回答 1查看 68关注 0票数 0

循环遍历每个组合框(我有四个)并抓取它的文本的最佳解决方案是什么?

一些文档(通过c#)说要创建一个组合框列表,但我不确定如何通过.NET框架将其移植到Pyhton。我所做的一切似乎都会产生一些错误。

我可以遍历所有的控件,但研究表明这是不必要的,并且会消耗CPU时间。

说了这么多,下面是我到目前为止没有成功的事情。我去掉了代码的其他部分来关注这一点:

代码语言:javascript
复制
import clr

clr.AddReference("System.Windows.Forms")
clr.AddReference("System.Drawing")
clr.AddReference("System.Data")
clr.AddReference("System.Globalization")
clr.AddReference("System.Collections")

from System.Windows.Forms import *
from System.Drawing import *
from System.Data import *
from System.Data.SqlClient import *
from System.Globalization import *
from System.Collection.Generics import *

    def FindPopulatedDropDowns():
        # https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1?view=net-5.0
        Items = List[string]()
        
        comboBoxes = OfType[ComboBox]().Where(x in x.Name.StartsWith('comboBox'))
        
        for cmb in comboBoxes:
            for cmbitem in cmb.Items:
                print(cmbitem.ToString())

有没有人有办法做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-31 05:23:33

这是我的解决方案。我相信还有更优雅的方式,但这可以满足我的需要。

代码语言:javascript
复制
    def FindPopulatedDropDowns(self):
        
        # https://docs.microsoft.com/en-us/dotnet/api/system.object.gettype?view=net-5.0#System_Object_GetType
        for c in self.Controls:
            if c.GetType() == ComboBox:
                print(c.Text)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66871110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档