WinForms中,DateTimePicker 控件用于讓用戶選擇日期和時間。以下是如何使用 DateTimePicker 控件的一些基本信息和示例代碼:
datetimePicker1.Value = DateTime.Now;
datetimePicker1.Format = DateTimePickerFormat.Short;
datetimePicker1.ShowUpDown = true;
以下是一個簡單的示例,演示如何在窗體加載時設置 DateTimePicker 控件的一些基本屬性,并處理 ValueChanged 事件:
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
// 設置 DateTimePicker 的默認值為當前日期和時間
datetimePicker1.Value = DateTime.Now;
// 設置日期格式為短格式(例如,"MM/dd/yyyy")
datetimePicker1.Format = DateTimePickerFormat.Short;
// 啟用時間選擇
datetimePicker1.ShowUpDown = true;
// 添加 ValueChanged 事件處理程序
datetimePicker1.ValueChanged += new EventHandler(datetimePicker1_ValueChanged);
}
private void datetimePicker1_ValueChanged(object sender, EventArgs e)
{
// 當用戶選擇的日期和時間發生變化時,執行此方法
DateTime selectedDate = datetimePicker1.Value;
// 在這里添加您的代碼,例如更新 UI 或記錄日志
}
}
在這個示例中,我們首先設置了 DateTimePicker 控件的默認值、日期格式和時間選擇的啟用狀態。然后,我們為 ValueChanged 事件添加了一個處理程序,當用戶選擇的日期和時間發生變化時,該處理程序會被調用。在處理程序中,您可以根據需要執行任何邏輯,例如更新 UI 或將選定的日期和時間存儲到變量中。
通過這些基本步驟,您可以在 WinForms 應用程序中輕松地使用 DateTimePicker 控件來讓用戶選擇日期和時間。
碼科技旗下 UIBak 于 2024 年 3 月 5 日正式上線!
這是一個基于 TailwindCss 框架的模板組件庫,為 Web 前端開發人員的 UI Kit 工具箱,完全免費開放,復制即用。同時,UIBak 也是配合創建一個基于Tailwind + Baklib CMS 的 UI 組件超市,方便制作Baklib CMS的用戶可以通過超市庫便捷尋找到各種可視化Web展示,以創建豐富的Web應用。
這里有兩個初心:
這里提到了“生態”,這是一個比較大的詞,我想解釋一下。
其實在準備上線UIBak網站的時候,我一直在思考“生態”這個問題。你如何理解“生態”這個事情呢? 我目前的理解是:
UI庫發展思路有兩個先:先滿足自己,再滿足別人;先滿足別人,再滿足自己。如果先滿足自己,品牌化會很強,生態的發展速度會取決于我們。如果先滿足別人,生態可能會發展更快,會推動 Baklib 的發展,到這種當時,沒有一個硬IP背書,非常難以讓人跟隨。所以對比下來,UI庫先面向我們Baklib去驅動發展。這就需要我們給Baklib的所有產品線設計一個業務模型,產品之間需要有關聯性,相輔相成。
雖然我們說做個生態,但是生態的范圍得收斂到我們能夠支撐的范圍。目前,為企業設計完整業務流程,是生態邊界參考的重要依據。
相比于其他 Web CSS 框架(如 Bootstrap),TailwindCss 非常吸引人的地方就是其預設了足夠用的 class, 需要什么樣的樣式,只需要查字典而不需要自定義 class,這個“約定大于配置”的理念,非常契合 Ruby on Rails 框架的理念[見 Rails Doctrine],而 Baklib 是基于 Ruby on Rails 開發的,所以我們認為 TailwindCss 是作為協同低代碼開發環境最優的選擇。網上搜索有關“Tailwind UI ”,“Tailwind Templates”得到的結果:
TailwindUI, Flowbite, DaisyUI, Tailbits, WindUI, PrelineUI, TailGrids, XtendUI, VueTailwind, Best of Tailwind,UI Kit vs Component Library, My library / kit is not on this list, Tailwind UI, daisyUI, Mamba UI, Headless UI, Tailwind Elements, Xtend UI, Flowbite, Tailwind UI Kit, Meraki UI, Tailblocks, HyperUI, Kimia UI, Tailwind Starter Kit, Material Tailwind, Konsta UI, Preline
確定關鍵詞: theme/css-bak/lib, UI, Templates, components, Kits,于是通過這些關鍵詞查了一下域名,發現幾乎都被注冊了,以下是.com/.cn 域名中還可以被注冊的:
bak-ui.com, bak-lib.com, UIBak.com,Libkit.cn,kitbak.cn,bakit.cn,bakkit.cn,uibase.cn,kitbase.cn,Libase.cn,Libbase.cn,bakbase.cn
最終選定了 UIBak.com/cn,主要是因為還有.com 域名,考慮到未來國際化的需要。
網上也有相關的競品學習和參考:
UIBak.com 是基于 Baklib CMS 搭建的,搭建的速度很快,也是通過模板,大概花費了我三天的時間,內容覆蓋各種UI、組件、整頁模板,配套一個幫助中心,一個博客,以及 Tools 工具箱。效果預覽如下:
官網
代碼預覽
工具箱
在我們使用selenium進行自動化測試的時候,selenium能夠幫助我們實現元素定位和點擊輸入等操作,但是有的時候,我們會發現,即使我們的元素定位沒有問題,元素也無法執行操作;也有部分情況是我們無法直接定位滾動條河時間控件來進行操作,這個時候,我們就需要借助JavaScript來解決問題。本文就來給大家介紹一下selenium如何執行JavaScript腳本,以及這種方法的一些常見應用場景和最佳實踐。
在Selenium中主要使用以下函數來調用js:
pythonexecute_script(script, *args)
python def execute_script(self, script, *args):
converted_args = list(args)
command = None
if self.w3c:
command = Command.W3C_EXECUTE_SCRIPT
else:
command = Command.EXECUTE_SCRIPT
return self.execute(command, {
'script': script,
'args': converted_args})['value']
當頁面顯示的數據較多,需要點擊底部的對象時,需要把鼠標移動到底部,才可以點擊對象。
場景說明:
當我們在百度上搜索一個內容時,內容較多,我們想查看完整的頁面需要滑動到頁面底部。代碼如下:
python
import time
from selenium import webdriver
class TestJs:
def setup(self):
self.driver=webdriver.Chrome()
self.driver.maximize_window()
self.driver.implicitly_wait(5)
def teardown(self):
self.driver.quit()
def test_js_scroll(self):
self.driver.get("https://www.baidu.com/")
# 定位搜索框,傳入搜索內容
self.driver.find_element_by_id("kw").send_keys("selenium")
# 使用JS定位搜索按鈕,點擊搜索
ele_search = self.driver.execute_script('return document.getElementById("su")')
ele_search.click()
# 將搜索頁面滑動至最下方
self.driver.execute_script('document.documentElement.scrollTop=10000')
time.sleep(3)
# 點擊下一頁
self.driver.find_element_by_xpath('//*[@id="page"]/div/a[10]').click()
time.sleep(3)
#打印js腳本執行后的返回結果
#返回頁面標題
print(self.driver.execute_script('return document.title'))
#返回performance.timing
print(self.driver.execute_script('return JSON.stringify(performance.timing)'))
大部分時間空間都是readonly屬性,需要手動去選擇對應的時間,手工測試中很容易做到,自動化中對控件的操作可以使用js完成,我們需要先移除readonly屬性,再給value賦值,具體代碼如下:
pythonClass TestJs:
def setup(self):
self.driver=webdriver.Chrome()
self.driver.maximize_window()
self.driver.implicitly_wait(5)
def teardown(self):
self.driver.quit()
def test_js_datetime(self):
# 打開網址
self.driver.get('https://www.12306.cn/')
time.sleep(3)
# 定位時間元素;進行readonly屬性去除操作;賦值新日期
# 注意:可以合并執行JS方法的寫法
self.driver.execute_script(
'a=document.getElementById("train_date");a.removeAttribute("readonly");a.value="2024-3-20"')
time.sleep(3)
通過使用Selenium執行JavaScript腳本,我們可以更靈活地操作根級別文檔和時間控件,提高了測試的效率和準確性。在實際應用中,開發者可以根據具體需求,靈活運用JavaScript腳本來優化自動化測試和網頁操作,從而更好地滿足項目需求。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。